我可以发誓我之前有这个工作,但现在我无法让父作用域更新并显示在页面上。
在父级中我有一个简单的范围,我想从指令更新。 在父控制器中,我这样设置它。
$scope.messageContent = 'The initial content';
在父视图中,我显示了
{{$scope.messageContent}}
我让测试非常简单,这是指令。在我的指令链接函数中,我有这段代码:
link: function (scope, element, attrs) {
scope.$parent.messageContent = 'New content';
}
它根本不会更新父级。我在这里缺少什么?
由于
答案 0 :(得分:0)
你可能有一个ng-if
或另一个Angular指令(ng-repeat,ng-switch,...)来创建一个新的范围,所以你必须用更多的$parent
向上链声明。
更好的选择是使用对象。
<强>控制器强>:
$scope.message = {content: 'some content'};
<强>指令强>
link: function (scope, element, attrs) {
scope.message.content = 'New content';
}
由于JavaScript的原型继承,使用对象而不是基元来解决分辨率问题 有关详细答案 - 请参阅:What are the nuances of scope prototypal / prototypical inheritance in AngularJS?