【发布时间】:2015-09-16 23:42:21
【问题描述】:
就在我认为我已经掌握了 AngularJS 的时候,它把我抛到了一边。我正在尝试通过将父范围中的值传递到隔离范围来更新它,然后在那里进行更新。
我认为使用两种方式的数据绑定会很简单,如下所示:
在父控制器中:
var self = this;
self.variable = 'Init';
在元素中:
<div data-example-directive data-variable="ParentCtrl.variable"></div>
在子指令中:
scope: {
variable: '='
}
link: function(scope) {
scope.updateVal = function(updatedVal) {
scope.variable = updatedVal;
}
}
template: '<button ng-click="updateVal('Updated Value')"></button>'
现在,如果在该函数内部,我在scope.variable 上调用console.log,它会显示updatedVal 的正确值。但是在页面本身上,父级尚未更新。我需要调用某种“刷新”吗?
我认为 AngularJS 的重点是内置双向数据绑定,我不必要求它根据以后的逻辑更新值?一位同事使用了broadcast,但没有更优雅的解决方案吗?
【问题讨论】:
标签: angularjs angularjs-scope angular-directive