AngularJS – 访问子范围

前端之家收集整理的这篇文章主要介绍了AngularJS – 访问子范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有以下控制器:
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向下调度事件。这可能会帮助你保持语义正确。

猜你在找的Angularjs相关文章