AngularJS嵌套范围/视图

时间:2015-07-16 19:51:11

标签: javascript angularjs

是否可以访问$scope$parent范围内定义的$parent变量?

E.g:

var foo = $scope.$parent.$parent.foo; /* evaluates to undefined */

这是否可行,建议有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该遵循dot rule,这样您就可以访问父作用域而无需$parent注释。

如果查看ng-controller API,您会发现scope: true选项确实意味着新控制器确实创建了一个原型继承自父控制器的范围,它允许访问对象属性已在父母范围内宣布。

基本上,这跟随prototypal inheritance.

<强>标记

<div ng-controller="myController">
   <h1>my Controller Scope Here</h1>
   <input type="text" ng-model="myCtrl.data"/>
   <div ng-controller="innerController">
      {{myCtrl.data}}: {{innerCtrl}}
   </div>
</div>

<强>控制器

app.controller('myController', function($scope){
    $scope.myCtrl = {};
})

app.controller('innerController', function($scope){
    $scope.innerCtrl = 'inner Data';
})