AngularJs的“Controller as”语法 - 控制器表示?

时间:2014-01-29 06:52:29

标签: javascript angularjs

我在想:

就像没有使用controller as语法一样,我必须这样做:

<body ng-controller="ParentCtrl">
  <input ng-model="name" /> {{name}}

  <div ng-controller="ChildCtrl">
    <input ng-model="name" /> {{name}} - {{$parent.name}}
  </div>
</body>

现在使用 Controller as语法,我可以这样做:

<body ng-controller="ParentCtrl as parent">
  <input ng-model="parent.name" /> {{parent.name}}

  <div ng-controller="ChildCtrl as child">
    <input ng-model="child.name" /> {{child.name}} - {{parent.name}}
  </div>
</body>

哪个好,但控制器本身呢?

在第一个例子中,我可以这样做:

....controller('Controller', function($scope) {
   // do something with $parent.$scope...

但现在,在使用this后:

.... controller('Controller',function(){       //this.mySomething ....

问题:

我如何引用父母? (以别名方式!)

我的意思是,NG来这里通过parent && child

使用别名来帮助我们

但控制器中的“帮助”是否有任何表示?

1 个答案:

答案 0 :(得分:1)

不,没有。

Controller的目标是...使得处理模型更自然,并且除非需要时删除所有处理$ scope的混乱。

模特并没有真正的父母。

$ scope有一个parent-$ scope。

但如果我有一个父控制器作为“自行车”和一个嵌套控制器“门把手”...

门把手可能有.turn().type以及.locked,但它没有“自行车”,只不过所有“自行车”都有“门把手”。

您仍然可以直接访问控制器中的$ scope,因此您可以添加自己的继承,并构建自己的链接 - 您还可以在视图中引用其他$ scope属性...