国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - ng-if和ng-show在IE8下的問(wèn)題
天蓬老師
天蓬老師 2017-05-15 16:50:55
0
2
715

最近在做一個(gè)angular js的專案。今早一個(gè)早上都在為一個(gè)bug發(fā)愁,、
是ng-if出現(xiàn)一個(gè)彈框,彈框的指令中引用了一個(gè)模板,模板中有script腳本,在其他瀏覽器都沒(méi)問(wèn)題,就是在IE8下腳本不執(zhí)行。
檢視了很多IE8執(zhí)行腳本的問(wèn)題,包括在script標(biāo)籤加defer屬性,但不解決實(shí)際問(wèn)題。
後來(lái)發(fā)現(xiàn)並不是腳本不能執(zhí)行,而是在主頁(yè)面載入時(shí)(ng-if為false彈框沒(méi)出現(xiàn))就執(zhí)行過(guò)了腳本。
網(wǎng)路上都說(shuō) ng-if會(huì)移除dom,生成dom,而ng-show只是改變其display屬性,
照理說(shuō)不應(yīng)該是ng-if="true"的時(shí)候才會(huì)載入dom,才會(huì)執(zhí)行腳本才對(duì)?
但把ng-if改成ng-show以後發(fā)現(xiàn)問(wèn)題突然解決了,在IE8裡面完美的實(shí)現(xiàn)了點(diǎn)擊彈框後才執(zhí)行腳本,
這一點(diǎn)沒(méi)想明白是為什麼,有沒(méi)有高人可以解答?

天蓬老師
天蓬老師

歡迎選擇我的課程,讓我們一起見(jiàn)證您的進(jìn)步~~

全部回覆(2)
PHPzhong

bug怎麼解決的我沒(méi)看明白,至於angular的解析過(guò)程我可以解釋下:

雖然在DOM查看器中我們看到的是angular解析之後的結(jié)果,但是實(shí)際上是瀏覽器先載入dom元素,然後angular再執(zhí)行,去查找各種指令,然後解析出結(jié)果的。

所以angular有幾個(gè)怪癖:ng-bind替換{{ expression }}可以解決花括號(hào)閃爍問(wèn)題,你不能在定義href指令用在a標(biāo)籤上,等等類似的問(wèn)題原因都是如此。

ng不是後臺(tái)模板,對(duì)於後臺(tái)語(yǔ)言來(lái)說(shuō),模板就是各種字串解析拼接,但是ng是運(yùn)行在瀏覽器中的,html會(huì)先變成dom元素,ng並不是在操縱字串,而是在操縱dom元素。

世界只因有你

你在ng-if里和ng-show裡應(yīng)該都是綁定的controller的model吧?

看你的解決過(guò)程,我猜:
ng-if預(yù)設(shè)是true
ng-show預(yù)設(shè)是false

所以使用ng-if的時(shí)候,模板裡的script會(huì)在model還沒(méi)運(yùn)算到的時(shí)候先執(zhí)行
不過(guò)這可能也是在ie8上的特殊情況

我有個(gè)建議,不要直接把script放在模板裡,例如放到模板的controller裡,這樣用ng-if也可以的

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板