Ich brauche sublist
Direktive an wenigen Stellen der Seite, und es sollte manchmal volle fields
Liste enthalten, aber manchmal gefiltert. Hier ist mein naiver Ansatz:Angular.js Passfilter auf Direktive bidirektionale ('=') Attribut
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'];
});
Wenn ich versuche, Filter zu verwenden ich diesen Fehler:
Error: 10 $digest() iterations reached. Aborting!
Gibt es eine Lösung für dieses Problem?
+1 für die Erklärung und die Referenz. –
Was ist, wenn Sie möglicherweise mehrere Filter, Sortierungen usw. benötigen? Gibt es eine allgemeine Lösung, um eine allgemeine gefilterte/sortierte Liste an eine Direktive zu übergeben? –
@EugeneOsovetsky: An diesem Punkt ist es wahrscheinlich einfacher/notwendig, das Heavy-Lifting in der direktiven Link/Controller-Funktion durchzuführen, indem dort '$ filter' injiziert wird. (Das heißt, dieser Q & A-Kontext ist die Ansicht und nicht der Controller-Teil des MVC-Paradigmas. Der Controller lässt viel mehr Komplexität zu.) Siehe [stackoverflow.com/a/14302334/2185093](http://stackoverflow.com/a/14302334/2185093) für weitere Informationen – sh0ber