我对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>
我试图让子控制器更改welcome
的值,如此处所示。
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.");
});
代码执行但我从未看到消息&#34;它有效!!!!!!!&#34;像我期待的那样。这是一位了解我的问题的傻瓜:http://plnkr.co/edit/Dywofrx0u3QOaiKe9MsJ?p=preview
答案 0 :(得分:5)
要更改要应用的父作用域,您需要将数据嵌套在对象中。
例如,如果你的家庭控制器有这个:
$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