1. 程式人生 > >angular js 根據條件決定是否引入script標籤

angular js 根據條件決定是否引入script標籤

工作中遇到了一個小問題,要根據介面的值來決定是否引入js檔案,有3個想法

1 控制script標籤顯示隱藏。根據介面傳來的值,來決定元素顯示隱藏,從而決定是否引入js,但是儘管ng-show 已經為false,但依然引入了,所以並沒起作用。

至於原因,我猜測可能是因為雖然script標籤顯示隱藏了,但只是介面效果,元素依然存在。

2 鑑於第一條路走不通,我在想控制ng-if是否好用,然而也不如理想,瀏覽器報錯。

3 那隻好用原生js來做,給script標籤加class或id,通過介面的值來選擇元素即document.querySelector(' ),最後決定是否給該script標籤加src,此la方法好用。

可以看出,用angular js 是很簡單,但有時效果並不好實現,只能換用原生js了。

但到後來要做中英翻譯,需要根據條件判斷是否要引入js的同時,還要根據中英文載入不同的js.我就想到了動態建立script 標籤,加不同src。

顯然,對於強大的谷歌沒問題,但是後來我就發現對IE來說,儘管控制檯顯示顯示加上了script標籤,加了src,但html裡死活沒有,我一直糾結於IE的機制,一直嘗試,沒辦法的情況下只好求助大神。

大神終究是大神,完美。換條路走,將中英文判斷寫在了引入的js中,這樣就不用動態建立script標籤,直接在專案中引入就好了。這個問題被很好的避免了。

當然這個問題終歸就不是來根據介面值來判斷引入js的問題了,當然這也是個過程,畢竟前期給的src 還是一個js檔案地址,我們也不好改人家的內容,最後乾脆我們將程式碼複製拿到了本地,這個在js中改就好了。所以總結就是以後最好別動態建立script,對IE這種瀏覽器來說,可能有多種因素會影響,做判斷最好還是在js中進行。