[英]Angular: update scope var within child function
在app.js中:
.controller('MainCtrl', function($scope) {
$scope.history = {
drive: "Jim"
};
$scope.getNote = function () {
$scope.history.drive ="Eric";
}
};
在HTML視圖中:
<textarea name="notesdata">{{history.drive}}</textarea>
當視圖加載時,我在文本區域中看到Jim。 但是當我調用getNote()時,我希望它會更改為Eric,而不會更改為Eric。 我究竟做錯了什么?
我嘗試添加$ scope.apply(); 在$ scope.history.drive =“ Eric”之后; 但隨后出現“錯誤:$ apply in progress”
只是一個錯字。
這個:
$scope.getNote() = function () {
$scope.history.drive ="Eric";
}
應該是這樣的:
$scope.getNote = function () {
$scope.history.drive ="Eric";
}
這是一個小提琴: http : //jsfiddle.net/u67kov5e/
我認為您可能對$scope.apply()
想法很接近。
如果您在不在 “角度世界”中的事件監聽器中調用$scope.getNote()
,例如,您已綁定了一個“ click”事件,而未使用ng-click
,則您需要觸發一個調用$scope.getNote()
時進行摘要
最好的方法是這樣的:
// pseudocode representing non-angular event
on('someEvent', function (){
// trigger a digest to tell angular about this event
$scope.$apply(function (){
$scope.getNote();
});
});
小提琴工作正常,因為ng-click
指令在其內部觸發了摘要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.