Angular:更新子函数中的作用域var
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,而不是。我做错了什么?
我尝试添加$scope.apply();在$scope.history.drive="Eric"之后;但随后我得到一个"错误:$apply-in-process"
只是一个拼写错误。
此:
$scope.getNote() = function () {
$scope.history.drive ="Eric";
}
应该是这样的:
$scope.getNote = function () {
$scope.history.drive ="Eric";
}
这是一把小提琴:http://jsfiddle.net/u67kov5e/
我认为您可能与您对$scope.apply()
的想法非常接近。
如果您在不在"角度世界"中的事件侦听器内调用$scope.getNote()
,例如,您已手动绑定到"单击"事件而不使用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();
});
});
fiddle运行良好,因为ng-click
指令在其内部触发了摘要。
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- 将子作用域var与父作用域var同步
- 全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间
- Angular:更新子函数中的作用域var
- 在ng-repeat中交替使用作用域var而不绑定类
- 如何在textAngular编辑器的作用域var中去除占位符
- 使用& # 39;var # 39;和& # 39;这个# 39;在node.js程序的全局作用域中
- 当我使用全局作用域变量没有'var',它显示我错误.为什么
- 从外部(即定义闭包的作用域)访问闭包内部定义的var
- 在nodejs/commonjs模块的根作用域中声明对象——用var还是不用var
- Javascript提升是否只考虑作用域中的第一个var