我有一個運行ng-repeat
一個HTML文件,然後在NG-重複每個項目將產生一個模板,也有它自己的控制器採用NG-init進程從NG重複數據發送到另一個控制器
在html文件我有這樣的:
<div ng-repeat="item in items">
<div ng-include="'template.html" ng-init="getData(item)"></div>
</div>
然後這個模板有它自己的控制器。
控制器具有功能的getData(項目),看起來是這樣的:
$scope.getData = function(item){
var chapter = item;
}
$scope.myVec = chapter.myVec.length;
template.html樣子:
<div ng-controller = "Controller">
<p>{{myVec}}</p>
</div>
然後我在控制檯上說得到一個錯誤「無法讀取未定義的屬性「長度」
我在這裏錯過了什麼?控制器是否在定義var chapter
的函數之前運行?
而不是使用'ng-include'和'ng-init'內部的'ng-controller',你應該考慮把它作爲一個指令。 'ng-init'在這裏不會真正起作用,因爲它綁定到外部控制器,但是你想要內部控制器上的數據。 – Claies
是的,我想我現在明白了。在ng-init上運行函數只會得到函數範圍內的數據,而不是整個控制器 –
我寫了一個快速指令,*做我認爲你正在嘗試完成的任務*;讓我知道它是否有幫助(或不):http://plnkr.co/edit/aoLzsSmmszeJiVa7znXY?p=preview – Claies