<ul>
<li ng-repeat="object in objects">{{object.id}}</li>
</ul>
控制器
function Controller($scope, ObjectFilter) {
$scope.objects = [{id: 1}, {id: 2}, {id: 3}];
var ids = [1, 3];
$scope.objects = ObjectFilter($scope.objects, ids);
}
過濾
function ObjectFilter(objects, ids) {
var out = [];
for(i=0; i<ids.length; i++) {
for(j=0; j<objects.length; j++) {
if(objects[j].id === ids[i]) {
out.push(objects[j]);
}
}
}
return out;
}
$ scope.objects後被過濾但模板不會更新。
如果我嘗試$scope.$apply()
我收到一個錯誤,$ apply已在進行中。
這不僅適用?爲什麼不?!
編輯:所以這個簡化的例子似乎工作,但不是我的實際代碼!
編輯:我通過組合兩個控制器使它工作。感謝您的意見,幫助我找出問題的所在。
對我來說工作得很好!只需將「OjectFilter」更改爲「ObjectFilter」 – Revive
修復了錯字。這是我的代碼的簡化版本。也許這是父母/孩子範圍的問題。 – barro32