我有一個HTML代碼片段,我在做ng-repeat來獲取框列表。 一旦dom準備就緒,我需要調用一個jquery插件來調整大小。 但在dom準備好之前,插件會被調用並且不會呈現任何內容。dom以角度加載後的回調函數
任何人都可以請幫助我,因爲我可以通知dom已更新或dom準備好以便我可以調用我的插件。
感謝
我有一個HTML代碼片段,我在做ng-repeat來獲取框列表。 一旦dom準備就緒,我需要調用一個jquery插件來調整大小。 但在dom準備好之前,插件會被調用並且不會呈現任何內容。dom以角度加載後的回調函數
任何人都可以請幫助我,因爲我可以通知dom已更新或dom準備好以便我可以調用我的插件。
感謝
我們可以使用angular.element(document).ready()
方法附加回調時的文件已準備就緒。我們可以簡單地附上回調控制器像這樣
function MyCtrl($scope) {
angular.element(document).ready(function() {
console.log('Hello World');
});
}
請注意,這隻適用於頁面加載。如果你正在使用ng-view/ui-view,這種方法不會是更好的解決方案。看起來這個問題在ng-repeat完成之後尋找一個dom準備渲染 –
看起來你正在尋找的時候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.
});
});
你能發表一些代碼嗎?最好將腳本標籤放在'body'標籤的末尾 –