2015-04-21 23 views
0

我有一個HTML代碼片段,我在做ng-repeat來獲取框列表。 一旦dom準備就緒,我需要調用一個jquery插件來調整大小。 但在dom準備好之前,插件會被調用並且不會呈現任何內容。dom以角度加載後的回調函數

任何人都可以請幫助我,因爲我可以通知dom已更新或dom準備好以便我可以調用我的插件。

感謝

+2

你能發表一些代碼嗎?最好將腳本標籤放在'body'標籤的末尾 –

回答

2

我們可以使用angular.element(document).ready()方法附加回調時的文件已準備就緒。我們可以簡單地附上回調控制器像這樣

function MyCtrl($scope) { 
    angular.element(document).ready(function() { 
     console.log('Hello World'); 
    }); 
} 

Demo

摘自:https://stackoverflow.com/a/18646795/2025923

+0

請注意,這隻適用於頁面加載。如果你正在使用ng-view/ui-view,這種方法不會是更好的解決方案。看起來這個問題在ng-repeat完成之後尋找一個dom準備渲染 –

0

看起來你正在尋找的時候NG-重複與完成通知的方式呈現內容。你可以像這樣創建一個指令。

app.directive('ngRepeatEnd', function($rootScope){ 
       return { 
        restrict:'A',     
        link:function(scope, element, attrs){ 
         if(scope.$last){         
          $rootScope.$broadcast('ArrayUpdated');      
         } 
        } 
       }; 
      }); 

由於該指令在同一範圍爲NG-重複操作,您可以訪問由NG-重複提供的$last變量。 $ last對於最後一次重複值是正確的。所以,通過這個,我們可以播放一個事件並將其捕獲到控制器中。

app.controller('DefaultController', function($scope){ 
     $scope.$on('ArrayUpdated', function(){ 
      //Your callback content here. 
    }); 
}); 
+0

是的我想在ng-repeat完成渲染時收到通知。我應該從哪裏調用指令ngRepeatEnd?能否請您提供任何示例小提琴 – Nupur

+0

是的。你可以在行動中看到它[這裏](http://jsfiddle.net/grvtiwari/2bezr3m4/)。 – Paras