我在想:
就像没有使用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
,
但控制器中的“帮助”是否有任何表示?
答案 0 :(得分:1)
不,没有。
Controller的目标是...使得处理模型更自然,并且除非需要时删除所有处理$ scope的混乱。
模特并没有真正的父母。
$ scope有一个parent-$ scope。
但如果我有一个父控制器作为“自行车”和一个嵌套控制器“门把手”...
门把手可能有.turn()
和.type
以及.locked
,但它没有“自行车”,只不过所有“自行车”都有“门把手”。
您仍然可以直接访问控制器中的$ scope,因此您可以添加自己的继承,并构建自己的链接 - 您还可以在视图中引用其他$ scope属性...