監(jiān)聽angularjs的ng-repeat完成/開始事件

//其實(shí)就是自定義指令?

因?yàn)槲艺也坏竭@個監(jiān)聽事件

//首先找到全局的angularjs

var myapps = angular.module("myapp");

//自定義指令repeatFinish ?這個指令名稱可以自定義但是在調(diào)用的時候要注意寫法 下面會有說明

//這里的$timeout下面會講

myapps.directive('repeatFinish',function($timeout){

//在調(diào)用到這個指令的時候執(zhí)行

return{

//默認(rèn)為A,C 就是參數(shù)和ClassName ?更多參數(shù)去看API

restrict:"A",

//這個方法在指令被編譯的時候運(yùn)行

//這里的scope指ng-repeat的作用域

//element 是 jqlite對象

//attr指方法傳進(jìn)來的參數(shù)集

link:function(scope,element,attr){

//如果渲染完成

//scope.$first==true 就是渲染開始 沒試過這個參數(shù) 嘻嘻

if(scope.$last==true){

//執(zhí)行這個參數(shù)或方法

//這里因?yàn)樽詈笠粋€last還在渲染中

? $timeout(function(){

?//所以等最后一個渲染完成再執(zhí)行

? ? ? scope.$eval(attr.repeatFinish);

})

}

}

}

})

在html文檔中調(diào)用

//這里的elearr自己創(chuàng)建 嘻嘻

//注意到這里repeatFinish編程了repeat-finish

//因?yàn)閔5和js轉(zhuǎn)化-號時會這樣,詳情查看駝峰法

//在控制器作用域調(diào)用

$scope.yourfunction=function(){

console.log("加宅ng-repeat完成");

//這時候就可以操作你的元素了

}

//我也是遇到這個問題在渲染完成前操作了元素,所以取不到對象,剛學(xué)angularJS可能有的地方理解錯了,幫忙指出來嘻嘻,互相學(xué)習(xí)嘻嘻,多多指教嘻嘻,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容