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

AngularJS – 访问子范围

发布时间:2020-12-17 09:10:44 所属栏目:安全 来源:网络整理
导读:如果我有以下控制器: function parent($scope,service) { $scope.a = 'foo'; $scope.save = function() { service.save({ a: $scope.a,b: $scope.b }); }}function child($scope) { $scope.b = 'bar';} 什么是正确的方式让父母读出孩子?如果有必要在父级定
如果我有以下控制器:
function parent($scope,service) {
    $scope.a = 'foo';

    $scope.save = function() {
        service.save({
            a:  $scope.a,b:  $scope.b
        });
    }
}

function child($scope) {
    $scope.b = 'bar';
}

什么是正确的方式让父母读出孩子?如果有必要在父级定义b,不会使它在语义上不正确,假设b是描述与孩子而不是父母相关的东西的属性?

更新:进一步思考,如果多个孩子有b,它会创建一个冲突的父对b要检索。我的问题是,从父母访问b的正确方法是什么?

AngularJS中的范围使用原型继承,当在子范围中查找属性时,解释器将从子节点开始查找原型链,并继续到父节点,直到找到属性,而不是反过来。

检查Vojta的问题https://groups.google.com/d/msg/angular/LDNz_TQQiNE/ygYrSvdI0A0J的意见

简而言之:您无法从父作用域访问子作用域。

您的解决方案:

>在父母中定义属性并从孩子中访问它们(阅读上面的链接)>使用服务来共享状态>通过事件传递数据。 $ emit向上向父级发送事件,直到根范围和$ broadcast向下调度事件。这可能会帮助你保持语义正确。

(编辑:李大同)

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

    推荐文章
      热点阅读