父视图不反映子控制器的更改
Parent view doesn't reflect changes by child controller
我对 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.");
});
代码执行了,但我从未像预期的那样看到消息 "It works!!!!!!!"。这是一个 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
我对 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.");
});
代码执行了,但我从未像预期的那样看到消息 "It works!!!!!!!"。这是一个 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