Heim  >  Artikel  >  Web-Frontend  >  Probleme im Zusammenhang mit dem Abhören des ng-repeat-Renderings in AngularJS

Probleme im Zusammenhang mit dem Abhören des ng-repeat-Renderings in AngularJS

亚连
亚连Original
2018-06-11 17:00:361477Durchsuche

In diesem Artikel werden hauptsächlich zwei Methoden für AngularJS zur Überwachung des Abschlusses des NG-Repeat-Renderings vorgestellt und die zugehörigen Betriebstechniken von AngularJS anhand benutzerdefinierter Anweisungen und Broadcast-Ereignisse analysiert, um die Überwachungsfunktion anhand von Beispielen zu implementieren dazu

Die Beispiele in diesem Artikel beschreiben zwei Methoden für AngularJS, um den Abschluss des ng-repeat-Renderings zu überwachen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Es gibt zwei Methoden, um den Abschluss des NG-Repeat-Renderings zu überwachen

1. Die praktischste Methode:

<ul class="pprt_content">
    <li ng-repeat="src in imageHotList track by $index" ng-click=&#39;goGoodsDet(src.goodsId,src.merchId)&#39; on-finish-render-filters="completeRepeat">
      <img ng-src="{{productUrl}}{{src.imageName}}">
    </li>
</ul>

Entsprechender Scope-Controller:

$scope.completeRepeate= function(){
alert(&#39;1&#39;)
}

Benutzerdefinierte Anweisungsanweisung:

var app = angular.moduler(&#39;myApp&#39;,[]);
app.directive(&#39;onFinishRenderFilters&#39;, [&#39;$timeout&#39;, function ($timeout) {
    return {
      restrict: &#39;A&#39;,
      link: function(scope,element,attr) {
        if (scope.$last === true) {
          var finishFunc=scope.$parent[attr.onFinishRenderFilters];
          if(finishFunc)
          {
            finishFunc();
          }
        }
      }
    };
}])

2. Broadcast-Ereignisse verwenden

/*
* Controller文件中的代码
* Setup general page controller
*/
MetronicApp.controller(&#39;simpleManageController&#39;, [&#39;$rootScope&#39;,
&#39;$scope&#39;, &#39;settings&#39;,&#39;$http&#39;, function($rootScope, $scope, settings,$http) {
  $scope.$on(&#39;ngRepeatFinished&#39;, function (ngRepeatFinishedEvent) {
    //下面是在table render完成后执行的js
    FormEditable.init();
    Metronic.stopPageLoading();
    $(".simpleTab").show();
  });
});
MetronicApp.directive(&#39;onFinishRenderFilters&#39;, function ($timeout) {
  return {
    restrict: &#39;A&#39;,
    link: function(scope,element,attr) {
      if (scope.$last === true) {
        $timeout(function() {
          scope.$emit(&#39;ngRepeatFinished&#39;);
        });
      }
    }
  };
});

HTML

<!--HTML页面的代码,添加标签onFinishRenderFilters(格式有变):on-finish-render-filters-->
 <tr style="display: none" class="simpleTab" ng-repeat="simpleProduct in simpleProducts"
   on-finish-render-filters>
     <td>
       {{simpleProduct.productNo}}
     </td>
</tr>

Das oben Gesagte habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:

Wie verwende ich die globale Eingabeaufforderungsbox-Komponente in Vue?

So verwenden Sie die ElementRef-Anwendung in Angular4

So verwenden Sie CLI-Anfrage-Proxy und Probleme bei der Projektverpackung in Vue

Verwenden Sie die Webpack-Vorlage in Vue-Cli, um Projektkonstruktions- und Verpackungspfadprobleme zu lösen

Bus Global Event Center in Vue (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonProbleme im Zusammenhang mit dem Abhören des ng-repeat-Renderings in AngularJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn