Tôi cần sử dụng chỉ thị sublist
ở một vài nơi trên trang và đôi khi phải có danh sách đầy đủ fields
nhưng đôi khi được lọc. Dưới đây là cách tiếp cận ngây thơ của tôi:Bộ lọc thông qua angular.js để chỉ thị thuộc tính hai hướng ('=')
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'];
});
Khi tôi cố gắng sử dụng bộ lọc tôi nhận được lỗi này:
Error: 10 $digest() iterations reached. Aborting!
Có giải pháp cho vấn đề này không?
+1 để giải thích và tham khảo. –
Điều gì xảy ra nếu bạn có khả năng cần nhiều bộ lọc, sắp xếp, v.v ...? Có một giải pháp chung để vượt qua bất kỳ danh sách lọc/sắp xếp chung nào để chỉ thị không? –
@EugeneOsovetsky: Tại thời điểm đó, có lẽ dễ dàng hơn/cần thiết để thực hiện việc nâng hạng nặng trong hàm liên kết/điều khiển chỉ thị bằng cách tiêm '$ filter' ở đó. (tức là bối cảnh Q & A này là khung nhìn, chứ không phải là phần điều khiển của mô hình MVC. Bộ điều khiển cho phép phức tạp hơn nhiều.) Xem [stackoverflow.com/a/14302334/2185093](http://stackoverflow.com/a/14302334/2185093) để biết thêm thông tin – sh0ber