Manipulation von Elementen, die von ng-repeat gefüllt werden, mithilfe von jQuery-Selektoren in $(document).ready() oder $scope.$on('$viewContentLoaded', myFunc) erweist sich als zwecklos. Gibt es ein spezielles Ereignis, das bei Abschluss von ng-repeat ausgelöst wird?
Obwohl es kein spezifisches Ereignis gibt, das die Beendigung von ng-repeat signalisiert, bietet die Verwendung von Anweisungen und ng-repeat-spezifischen Eigenschaften eine praktikable Lösung Lösung.
Richtlinien
Wenn Ihr Ziel darin besteht, Event-Handler für die gesamte Tabelle zu formatieren oder an sie anzuhängen, können Sie eine Direktive verwenden, die alle ng-repeat-Elemente kapselt. Umgekehrt können Sie zum Ansprechen bestimmter Elemente eine Direktive in ng-repeat verwenden, die für jedes erstellte Element ausgeführt wird.
Ng-Repeat-Eigenschaften
Der $index, $ Die Eigenschaften first, $middle und $last ermöglichen das Auslösen von Ereignissen. Beispielsweise können Sie die Eigenschaft „$last“ verwenden, um eine Warnung anzuzeigen, wenn das letzte Element erstellt wird.
Beispiel
Bedenken Sie den folgenden HTML-Code:
<div ng-controller="Ctrl" my-main-directive> <div ng-repeat="thing in things" my-repeat-directive> thing {{thing}} </div> </div>
Die begleitenden Anweisungen könnten wie folgt aussehen:
angular.module('myApp', []) .directive('myRepeatDirective', function() { return function(scope, element, attrs) { angular.element(element).css('color','blue'); if (scope.$last){ window.alert("im the last!"); } }; }) .directive('myMainDirective', function() { return function(scope, element, attrs) { angular.element(element).css('border','5px solid red'); }; });
Versuchen Sie diese Lösung hier in Aktion Plunker.
Das obige ist der detaillierte Inhalt vonWird ein Ereignis ausgelöst, wenn ng-Repeat das Auffüllen von Elementen abschließt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!