加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 父视图不反映子控制器的更改

发布时间:2020-12-17 17:24:52 所属栏目:安全 来源:网络整理
导读:我对Angular有点新意,所以如果这是一个菜鸟问题我会道歉.基本上我有一个控制器试图改变父范围的值.它成功但父视图永远不会更新. 我的父视图如下: html ng-app="app" ng-controller="appController" head ... /head body This is the outer view.br br {{ we
我对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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读