2017-12-06 9 views
0

を使用してAngularJSで完了する方法を知っている私は、HTMLのDOMは、複数のNGリピートでangularjsを使用してレンダリングを完了したときに、アラートやメッセージを上げたいです。は、DOMのレンダリングがNGリピート

HTMLコード:

 <body> 
      <div ng-controller="Ctrl"> 
       <div ng-repeat="thing in things" my-post-repeat-directive>          
         thing {{thing}} 
        </div> 
        <div ng-show="complete">Complete {{complete}}</div> 
      </div> 
     </body> 

JSコード

 function Ctrl($scope) { 
     $scope.complete = false; 
      $scope.doComplete = function() { 
       $scope.complete = true; 
      } 

     $scope.things = [ 
        'A', 'B', 'C' 
        ]; 
       } 

      angular.module('myApp', []) 
      .directive('myPostRepeatDirective', function() { 
      return function(scope, element, attrs) { 
      if (scope.$last) { 
      scope.$eval('doComplete()'); 
       } 
     }; 
    }); 
+1

を行うために使用することができます – guramidev

+0

これは、 'scope $ $ evalAsync()'でディレクティブを使用してバルクロードを行うことができると思います。ここではそれについての詳細です:[スコープevalAsyncは、パフォーマンスへの影響](https://www.bennadel.com/blog/2635-looking-at-how-scope-evalasync-affects-performance-in-angularjs-directives.htm) 。しかし、それを覚えておいてください、それはそれが何らかの** DOMレンダリング**の前に式を評価し、_after_ a **ダイジェストサイクル**が終了した –

答えて

0

AngularJS ライフサイクルHOOKS

$postLink(() => { 
    yours alert 
}) 

として
を持っています

$ポストリンク() - リンクされている このコントローラの要素とその子の後に呼び出されます。ポストリンク機能と同様に、このフックは あなたではなく、コントローラよりもhttps://docs.angularjs.org/guide/componentに多くを調査する必要がありDOMイベントハンドラを設定し、直接DOM操作に