搜尋

首頁  >  問答  >  主體

angular.js - angularjs雙向綁定

input有個ng-model綁定,手動輸入能改變這個值,我用jquery改變了一個input的值$('#dd').val('str');
然後scopemodel不變
求救

世界只因有你世界只因有你2822 天前534

全部回覆(2)我來回復

  • 漂亮男人

    漂亮男人2017-05-15 16:57:24

    如果使用angular way 修改更新DOM或變數的值的話, 不需要進行額外操作.

    但是如果脫離了angular, 使用類似於jquery這樣, 不在angular的體系內的代碼的話, 你進行了修改需要通知angular, 讓angular獲取最新的值, 以反映到頁面中.

    所以你可以使用下面的方法, 通知angular

    $scope.$apply(function(){
        jQuery('input').val(newValue);
    })

    回覆
    0
  • 怪我咯

    怪我咯2017-05-15 16:57:24

    正確的方法是…不要手動去改view。
    提議:
    1、試著把model露出出來,然後去修改model吧,改完之後呼叫$scope.$apply()。另外,為了避免各種不可預期的錯誤,你可以這樣寫setTimeout(function(){$scope.$apply()},0)。
    2、無論如何,你有這種需求,一定是因為發生了什麼事件,使用者操作或是ajax之類的。 ajax操作可以用Angular提供的$http服務,用戶操作呢,則通常都可以封裝到directive裡面。

    回覆
    0
  • 取消回覆