我对Angular有点新意,所以如果这是一个菜鸟问题我会道歉.基本上我有一个控制器试图改变父范围的值.它成功但父视图永远不会更新.
我的父视图如下:
<html ng-app="app" ng-controller="appController"> <head> ... </head> <body> This is the outer view.<br> <br> {{ welcome }} <div ng-view style="width: 100%; border: 1px solid black; padding: 10px;"> </div> </body> </html>
我正试图让一个子控制器改变欢迎的价值,如此处所示.
app .controller('homeController',function ($scope) { $scope.welcome = "Hello world!" $scope.$parent.welcome = "It works!!!!!!!!!"; console.log("Home controller loaded."); }) .controller('appController',function ($scope) { $scope.welcome = "It doesn't work!" console.log("App controller loaded."); });
代码执行但我从未看到消息“它工作!!!!!!!”像我期待的那样.这是一个说明我的问题的plunker:http://plnkr.co/edit/Dywofrx0u3QOaiKe9MsJ?p=preview
解决方法
要更改要应用的父作用域,您需要将数据嵌套在对象中.
例如,如果你的家庭控制器有这个:
$scope.someObject = {}; $scope.someObject.welcome = "Hello from the appController!"
然后你的孩子控制器:
$scope.$parent.someObject.welcome = "Hello from the homeController!";
这将正常工作.
这是更新的Plunker:http://plnkr.co/edit/idWEgd8QRwts3zyR6vXJ?p=preview
非常非常相关:Update parent scope variable