Javascript 从ng include controller修改主控制器$scope
我有一个标题视图,其控制器包含在我的页面中:Javascript 从ng include controller修改主控制器$scope,javascript,angularjs,scope,prototype,angularjs-ng-include,Javascript,Angularjs,Scope,Prototype,Angularjs Ng Include,我有一个标题视图,其控制器包含在我的页面中: <div ng-include="'header.html'" ></div> 我创建了一个plunker演示来说明这个问题 在您的具体情况下,您可以使用: $scope.$parent.$parent.value = 'new value'; 检查一下 但真正的解决方案是使用,或者更好地使用语法。在子范围中更新父范围中的值时,我通常使用以下方法之一: 将对象传递给子对象并更新对象内部的适当性 将函数传递给子作用域并调用此
<div ng-include="'header.html'" ></div>
我创建了一个plunker演示来说明这个问题
在您的具体情况下,您可以使用:
$scope.$parent.$parent.value = 'new value';
检查一下
但真正的解决方案是使用,或者更好地使用语法。在子范围中更新父范围中的值时,我通常使用以下方法之一:
app.controller('MainCtrl', function($scope) {
$scope.value = {
data: 'first value'
};
});
app.controller('HeaderCtrl', function($scope) {
$scope.header = 'from header';
$scope.update = function(){
$scope.$parent.value.data = 'new value';
}
});
不使用ng include
,但您可以查看
要进一步了解AngularJS中的作用域,您可以阅读没问题。这方面有很多问题,我很乐意帮忙。如果你感兴趣,这是约翰·帕帕的作品。用AngularJS编写更好的代码是一个不错的选择,他还解释了为什么要这样做。
app.controller('MainCtrl', function($scope) {
$scope.value = {
data: 'first value'
};
});
app.controller('HeaderCtrl', function($scope) {
$scope.header = 'from header';
$scope.update = function(){
$scope.$parent.value.data = 'new value';
}
});