我本可以发誓我之前已经做到了这一点,但现在我只是无法让父范围更新并显示在页面上。
在父级中,我有一些想要从指令更新的简单范围。 在父 Controller 中我这样设置。
$scope.messageContent = 'The initial content';
在父 View 中我将其显示
{{$scope.messageContent}}
我把测试做得非常简单,这是指令。在指令的链接函数中,我有以下代码:
link: function (scope, element, attrs) {
scope.$parent.messageContent = 'New content';
}
它根本不会更新父级。我在这里缺少什么?
谢谢
最佳答案
你可能有一个 ng-if
或另一个 Angular 指令(ng-repeat,ng-switch,...)来创建一个新的作用域,所以你必须在链上添加更多$parent
声明。
更好的选择是使用对象。
Controller :
$scope.message = {content: 'some content'};
指令
link: function (scope, element, attrs) {
scope.message.content = 'New content';
}
由于 JavaScript 的原型(prototype)继承,使用对象而不是原语来解决解析问题是可行的。
有关详细答案 - 请参阅:What are the nuances of scope prototypal / prototypical inheritance in AngularJS?
关于javascript - scope.$parent.messageContent=值不更新指令的父范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512097/