日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

angular.js - angular指令的compile的參數(tElement,tAttrs)和link中的參數(scope,iElement,iAttrs)究竟有什么區別?

瀏覽:297日期:2024-10-14 10:25:26

問題描述

RT:自己編寫angular指令:

compile:function(tElement,tAttrs,linker){ return function(scope,iEle,iAttrs,ctrl,linker){ }}

compile函數有三個參數(tElement,tAttrs,linker),link函數有五個參數(scope,iElement,iAttrs,ctrl,linker)其中的tElement和iElement,tAttrs和iAttrs在什么情況下會不一樣?經過很多種嘗試,指令嵌套指令,都沒有發現他們有區別,但是看書上說是會不一樣的,請問在什么場景下會不一樣,有沒有栗子?

--------------------------分割線--------------------------------------看完這篇文章,文章中的levelOne嵌套levelTwo嵌套levelThree,compile和link的執行順序應該是:compile-levelOne,compile-levelTwo,compile-levelThree,即先把compile全部執行完,然后再執行link函數.但是我自己寫的這兩個指令,它的執行順序卻不是這樣的,它是先執行了外層的compile,外層的link,然后再執行內層的compile,內層的link...希望能得到大師指點,謝謝~~~

<script type='text/ng-template' id='text.html'> <p> <h3 ng-transclude></h3> </p> </script> <p cb-repeat='thing in things'> <my-widget name='code_bunny'><span>{{thing}}</span></my-widget> </p>

appModule.directive(’cbRepeat’,function(){ return {restrict:’EAC’,transclude:’element’,compile:function(tEle,tAttrs,trans){ console.log(’compile-cbRepeat’); return function(scope,iEle,iAttrs,ctrl,linker){console.log(’post-cbRepeat’);//scope.$new()創建一個作用域的子作用域//console.log(scope.$new().$parent==scope);var myLoop = iAttrs.cbRepeat, match = myLoop.match(/s*(.+)s+ins+(.*)s*/), indexString = match[1], collectionString = match[2], parentEle = iEle.parent(), elements = [];scope.$watchCollection(collectionString,function(collection){ if(elements.length>0){for(var i= 0;i<elements.length;i++){ elements[i].el.remove(); elements[i].scope.$destroy();}elements = []; } for(var i=0;i<scope[collectionString].length;i++){var newScope = scope.$new();newScope[indexString] = scope[collectionString][i];linker(newScope,function(clone){ parentEle.append(clone); var element = {}; element.el = clone; element.scope = newScope; element.scope.$on(’$destroy’,function(){console.log(’被移除’) }); elements.push(element);}) }}) }} }});appModule.directive(’myWidget’,function(){ return {restrict:’E’,templateUrl:’text.html’,replace:true,transclude:true,scope:true,compile:function(tEle,tAttrs,trans){ console.log(’compile-myWidget’+tEle.html()); return function(scope,iEle,iAttrs){console.log(’post-myWidget’+iEle.html()) }} }});

最后打印出來的順序是這樣的:angular.js - angular指令的compile的參數(tElement,tAttrs)和link中的參數(scope,iElement,iAttrs)究竟有什么區別?

它是先執行了外層cbRepeat的compile,然后執行了cbRepeat的link,然后再是內層myWidget的compile,myWidget的link...暈了~~~ 跪求解答~~~ 謝謝~~~

問題解答

回答1:

關于指令中的compile與link函數的區別建議看這篇文章的介紹http://www.ifeenan.com/angularjs/2014-09-04-[%E8%AF%91]NG%E6%8C%87%E4%BB%A4%E4%B8%AD%E7%9A%84compile%E4%B8%8Elink%E5%87%BD%E6%95%B0%E8%A7%A3%E6%9E%90/

回答2:

我看了那篇文章,也看了你的答案,我覺得是理解上的差異造成的,原文中,是說先按嵌套順序執行 levelOne - levelThree的compile ,再按嵌套順序執行 levelOne - levelThree的pre-link。但樓主你的例子中并沒有link屬性,也沒有pre-link,也沒有post-link,只是簡單的compile。所以輸出你圖示的那個結果。你可以仔細看一下那篇文章中的代碼和你的代碼之間的不同。

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文在线不卡| 欧美天堂在线| 中文av在线全新| 久久精品女人| 国产aa精品| 日韩大片在线播放| 久久精品在线| 99在线|亚洲一区二区| 亚洲一卡久久| 亚洲开心激情| 国产伦理一区| 成人亚洲精品| 久久久久久久久丰满| 私拍精品福利视频在线一区| 亚洲福利国产| 丝瓜av网站精品一区二区| 欧美资源在线| 久久国产三级| 高潮一区二区| 99亚洲视频| 国产亚洲久久| 国产精品不卡| 午夜久久福利| 奇米亚洲欧美| 国产成人精选| 亚州av乱码久久精品蜜桃| 亚洲精选av| 麻豆精品久久| 欧美特黄一区| 国产乱码精品一区二区三区亚洲人| 国产精品66| 亚洲综合电影| 麻豆亚洲精品| 久久精品午夜| 国产精品88久久久久久| 日韩精品福利一区二区三区| 久久亚洲精品中文字幕| 欧美日韩一区二区三区视频播放| 亚洲人妖在线| 中文字幕在线看片| 亚洲网址在线观看| 国产乱码午夜在线视频| 免费人成在线不卡| 精品国产aⅴ| 首页欧美精品中文字幕| 欧美激情日韩| 亚洲韩日在线| 欧美日韩va| 久久精品国产www456c0m| 色综合视频一区二区三区日韩| 精品国产乱码久久久久久1区2匹| 欧美另类专区| 久久精品福利| 丝袜美腿亚洲色图| 国产在线视频欧美一区| 99热精品在线| 欧美黑人巨大videos精品| 蜜桃视频欧美| 精品一区二区三区视频在线播放| 99re国产精品| 精品久久美女| 免播放器亚洲| 欧美男人天堂| 奇米狠狠一区二区三区| 国精品一区二区三区| 国产精品mv在线观看| 伊人久久大香线蕉av超碰演员| 欧美精品1区| 亚洲最大av| 不卡一区综合视频| 狠狠久久伊人中文字幕| 亚洲精品美女91| 欧美成人日韩| 色婷婷亚洲mv天堂mv在影片| 日av在线不卡| 久久九九精品| 国产精品va| 免费人成精品欧美精品| 亚洲最新无码中文字幕久久 | 午夜亚洲精品| 日韩久久一区二区三区| 国产精品一区二区中文字幕| 免费中文字幕日韩欧美| 日韩高清中文字幕一区二区| 国产精品久久久一区二区| 亚洲精品看片| 亚洲中午字幕| 五月天激情综合网| 国产一区二区三区精品在线观看| 日本不卡在线视频| 视频一区二区三区入口| 一区二区三区视频免费观看| 国产a久久精品一区二区三区| 日韩av资源网| 蜜芽一区二区三区| 影音先锋久久| 久久国产欧美| 蜜桃成人精品| 大香伊人久久精品一区二区| 国产精品九九| 国产精品亚洲产品| 青青草精品视频| 日韩成人在线看| 天堂精品久久久久| 国产婷婷精品| 婷婷亚洲五月| 香蕉精品视频在线观看| 国产精品99免费看| 欧美一级精品| 在线精品视频在线观看高清| 久久视频国产| 亚洲欧美一区在线| 欧美日韩日本国产亚洲在线| 亚洲女同中文字幕| 免费不卡中文字幕在线| 亚洲午夜黄色| 国产韩日影视精品| 红桃视频欧美| 亚洲欧美日韩在线观看a三区| 欧美日韩视频| 免费在线观看精品| 日本亚洲三级在线| 久久国产免费看| 免费一级欧美片在线观看网站| 欧美aⅴ一区二区三区视频| 麻豆国产精品| 91欧美在线| 99久久99视频只有精品| 午夜欧美视频| 亚洲精品中文字幕99999| 日韩不卡手机在线v区| 国产精品久久777777毛茸茸| 韩国一区二区三区视频| 国产精品蜜芽在线观看| 午夜欧美巨大性欧美巨大| 最新中文字幕在线播放 | 日本在线成人| 日韩欧美三区| 久久久精品国产**网站| 国产成人精品免费视| 欧美成人基地| 午夜一级久久| 91成人在线精品视频| 精品一区二区三区中文字幕在线| 久久久男人天堂| 免费欧美一区| 日韩视频中文| 丝袜诱惑制服诱惑色一区在线观看 | 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品婷婷| 日本va欧美va欧美va精品| 欧美一区二区三区久久| 精品国产乱码久久久| 国精品产品一区| 999精品一区| 免费精品视频最新在线| 91成人精品观看| 福利视频一区| 好看不卡的中文字幕| 免费人成精品欧美精品| 久久国产精品色av免费看| 九九九精品视频| 激情婷婷久久| 日韩和欧美一区二区三区| 免费在线亚洲| 99久久久久| 日本在线成人| 色偷偷色偷偷色偷偷在线视频| 特黄毛片在线观看| 亚洲少妇诱惑| 国产精品mm| 激情综合亚洲| 国产精品一区二区精品| 日本久久成人网| 日本在线不卡视频一二三区| 国产一区2区在线观看| 欧美日韩中文字幕一区二区三区 | 亚洲免费毛片| 久久精品一区二区国产| 国产一区二区中文| 国产欧美日韩视频在线| 成人国产精选| 久久午夜精品| 精品美女视频 | 久久精品99国产精品| 欧美少妇精品| 亚洲综合激情在线| 福利一区视频| 夜夜精品视频| 久久久免费人体| 午夜宅男久久久| 国产一区三区在线播放| 天堂va蜜桃一区二区三区| 国产一区三区在线播放| 免费成人av在线播放| 桃色av一区二区| 久久激情五月激情| 好看的av在线不卡观看| 久久精品国产99国产精品| 久久夜色精品|