當我將腳本動態加載到頁面時遇到問題。目前我們有兩個獨立的項目,一個SharePoint應用程序和一個「CDN」網站,我們託管我們所有的內容文件(js,css,圖像等)。
由於這些事件被分離到多個項目中,我們必須通過加載腳本的方式來創造性(確保如果我們瀏覽我們的Sharepoint項目的開發環境,它會從CDN的開發環境加載內容)
這裏我們使用動態加載腳本代碼的腳本:
<script type="text/javascript">
var ReferenceLoader = (function() {
var cdnUrl = {
'devSPDomain': 'https://devCDN/',
'testSPDomain': 'https://testCDN/',
'prodSPDomain': 'https://prodCDN/'
},
baseUrl = cdnUrl[window.location.host] || 'https://prodCDN/';
this.InsertReference = function (sources, type) {
sources = [].concat(sources); // make sure it's an array
type = type || 'script'; // default to script
switch (type.toLowerCase()) {
case 'script': InsertScriptReference(sources); break;
case 'style': InsertStyleReference(sources); break;
default: console.log('Invalid type supplied to \'InsertReference()\'');
}
};
function InsertScriptReference(sources) {
for (var i = 0; i < sources.length; i++) {
var s = document.createElement('script'),
src = baseUrl + sources[i];
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', src);
document.head.appendChild(s);
}
}
function InsertStyleReference(sources) {
for (var i = 0; i < sources.length; i++) {
var s = document.createElement('style'),
src = baseUrl + sources[i];
s.setAttribute('rel', 'stylesheet');
s.setAttribute('href', src);
document.head.appendChild(s);
}
}
return this;
})();
</script>
然後任何給定的頁面中我們可以做這樣的:
<script type="text/javascript">
var scripts = [
'dist/js/plugins/chart/0.0.1/chart.min.js',
'dist/js/shared/services/util/0.0.1/utilServices.min.js',
'dist/js/components/home/0.0.4/home.min.js'
];
ReferenceLoader.InsertReference(scripts);
</script>
現在,這一切都很好,我可以在頁面上看到它成功地將腳本/鏈接標記放在head元素中,但是我得到一個angular injector error。我是110%正面的文件,其中的模塊正在加載,如果我只是做一個正常的腳本標記,直接指向它在我的網頁上(在頭部或身體),它工作正常。有任何想法嗎?
這裏有一個plunker顯示問題
不幸的是,這不是它,一切正常精縮。 –