在app.js中:
.controller('MainCtrl', function($scope) {
$scope.history = {
drive: "Jim"
};
$scope.getNote = function () {
$scope.history.drive ="Eric";
}
};
在HTML视图中:
<textarea name="notesdata">{{history.drive}}</textarea>
当视图加载时,我会在textarea中看到Jim。但是当我调用getNote()时,我会期望它改为Eric而不是。我究竟做错了什么?
我尝试添加$ scope.apply();在$ scope.history.drive =&#34; Eric&#34 ;;之后但后来我得到了一个&#34;错误:$申请正在进行中&#34;
答案 0 :(得分:2)
只是一个错字。
此:
$scope.getNote() = function () {
$scope.history.drive ="Eric";
}
应该是这样的:
$scope.getNote = function () {
$scope.history.drive ="Eric";
}
这是一个小提琴:http://jsfiddle.net/u67kov5e/
答案 1 :(得分:0)
我认为你可能对$scope.apply()
的想法很接近。
如果您在“角度世界”中的不是的事件监听器内呼叫$scope.getNote()
,例如您已绑定到&# 39;单击&#39;手动事件而不使用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
指令在其内部触发了摘要。