在我目前的ParentController
中:
$scope.grid = {
$index: null,
view: [],
data: []
};
在我目前的ChildController
中:
.controller('ChildController', ['$Scope',
function ($Scope) {
$Scope.grid.$index = null;
$Scope.grid.view = [];
$Scope.grid.data = [];
根据我的理解,这允许我填充ChildController
中的$ Scope.grid.data
并且还具有可以在Parent Controller
内的$ Scope.grid.data上运行的函数。
现在我想开始使用“as controller”语法。因此,如果我理解正确的话,我需要在HTML的两个HTML页面内编码我的HTML中的控制器:
<div data-ng-controller="ParentController as parent" ..
<div data-ng-controller="ChildController as child" ..
我的父控制器是这样的:
this.grid = {
$index: null,
view: [],
data: []
};
如果我这样做,那么在ChildController
我应该如何参考grid.view?我是以某种方式将“parent
”传递给ChildController
,然后在我的孩子中使用:
parent.grid.view = [];
最后我听说“as controller”语法是实验性的。它现在已经过了那个阶段吗?
答案 0 :(得分:2)
只要您不改变代码,&#34; as&#34;语法没有任何区别。
如果您将ParentController
更改为
this.grid = {
$index: null,
view: [],
data: []
};
然后您的$scope
仍然需要ChildController
引用,但是您添加了另一个属性:
.controller('ChildController', ['$Scope',
function ($Scope) {
$Scope.parent.grid.$index = null;
$Scope.parent.grid.view = [];
$Scope.parent.grid.data = [];
正如您所看到的那样,它不仅更复杂,而且您还将代码与HTML相结合:如果您决定将HTML更改为ParentController as someController
ChildController
,那么1}}。
即使是&#34; as&#34;您希望grid
成为$scope
的属性的语法。