input有個ng-model綁定,手動輸入能改變這個值,我用jquery改變了一個input的值$('#dd').val('str'); 然後scope的model不變求救
input
ng-model
jquery
$('#dd').val('str');
scope
model
如果使用angular way 修改更新DOM或變數的值的話, 不需要進行額外操作.
angular way
但是如果脫離了angular, 使用類似於jquery這樣, 不在angular的體系內的代碼的話, 你進行了修改需要通知angular, 讓angular獲取最新的值, 以反映到頁面中.
所以你可以使用下面的方法, 通知angular
$scope.$apply(function(){ jQuery('input').val(newValue); })
正確的方法是…不要手動去改view。 提議:1、試著把model露出出來,然後去修改model吧,改完之後呼叫$scope.$apply()。另外,為了避免各種不可預期的錯誤,你可以這樣寫setTimeout(function(){$scope.$apply()},0)。 2、無論如何,你有這種需求,一定是因為發生了什麼事件,使用者操作或是ajax之類的。 ajax操作可以用Angular提供的$http服務,用戶操作呢,則通常都可以封裝到directive裡面。
如果使用
angular way
修改更新DOM或變數的值的話, 不需要進行額外操作.但是如果脫離了angular, 使用類似於jquery這樣, 不在angular的體系內的代碼的話, 你進行了修改需要通知angular, 讓angular獲取最新的值, 以反映到頁面中.
所以你可以使用下面的方法, 通知angular
正確的方法是…不要手動去改view。
提議:
1、試著把model露出出來,然後去修改model吧,改完之後呼叫$scope.$apply()。另外,為了避免各種不可預期的錯誤,你可以這樣寫setTimeout(function(){$scope.$apply()},0)。
2、無論如何,你有這種需求,一定是因為發生了什麼事件,使用者操作或是ajax之類的。 ajax操作可以用Angular提供的$http服務,用戶操作呢,則通常都可以封裝到directive裡面。