我需要在頁面的少數幾個地方使用sublist
指令,它應該包含有時會列出完整的fields
列表,但有時會被過濾。這裏是我的幼稚的做法:Angular.js通過過濾器指令的雙向('=')屬性
HTML:
<div ng-controller="MainCtrl">
<sublist fields="fields" /> <!-- This one is OK -->
<sublist fields="fields | filter: 'Rumba'" /> <!-- This one raises error -->
</div>
的Javascript:
angular.module('myApp', [])
.directive('sublist', function() {
return {
restrict: 'E',
scope: { fields: '=' },
template: '<div ng-repeat="f in fields">{{f}}</div>'
};
})
.controller('MainCtrl', function($scope) {
$scope.fields = ['Samba', 'Rumba', 'Cha cha cha'];
});
當我試圖使用過濾器,我得到這個錯誤:
Error: 10 $digest() iterations reached. Aborting!
有沒有解決這個問題的方法?
+1爲解釋和參考。 –
如果您可能需要多個過濾器,排序等,該怎麼辦?是否有通用的解決方案將任何通用的過濾/排序列表傳遞給指令? –
@EugeneOsovetsky:在這一點上,通過在那裏注入'$ filter',在指令鏈接/控制器函數中完成繁重的工作可能更加容易/必要。 (即,這個Q&A上下文是視圖,而不是MVC範例的控制器部分。控制器允許更多複雜性。)請參閱[stackoverflow.com/a/14302334/2185093](http://stackoverflow.com/a/14302334/2185093)以獲取更多信息 – sh0ber