2014-02-17 79 views
1

我只是想將圖像添加到我的應用程序。 誠如,我用NG-SRC指令:AngularJS NG-src在IE8:圖像不加載和「不安全」添加到路徑

<img ng-src="{{app.imgBig}}" alt="lorem ipsum" height="100" width="200" title="lorem ipsum" /> 

它適用於大多數瀏覽器不錯,但它不會對IE8。 圖像沒有加載,而不是增加的絕對URL的文件名,則返回相對路徑,並增加了「不安全:」之前。

事實上,它試圖加載:

不安全:IMG/test.jpg放在

相反的:

http://url_of_my_site.com/img/test.jpg

所以,你知道,這可能與我必須完全掌握的事實有關禁用SCE支持IE7:

$sceProvider.enabled(false); 

速戰速決是創造一個基本路徑常數,它在圖像路徑的開始增加,但由於應用程序不應該依賴從它不是最好的這個基本路徑。

有什麼想法?

+0

從你的描述,如果'不安全:'仍在增加,即使使用'$ sceProvider.enabled(假)',聽起來似乎有些使用'$ sanitize'仍在進行之中。可能與當前的AngularJS錯誤有關 - 查看https://github.com/angular/angular.js/issues/2901瞭解詳情和可能的修復方法。 –

+0

感謝您的幫助亞歷克斯,但我試圖勸修復,但** 「不安全:」 **仍然存在: 'VAR對myApp = angular.module( '對myApp',[],功能($ compileProvider){$ compileProvider .imgSrcSanitizationWhitelist(?/^\ S *((HTTPS | FTP |郵寄地址):) |#/); });' – Surreal

回答

1

找到了解決自己:

  1. 獲取當前基本URL感謝Location對象:

    var base_url = location.protocol + "//" + location.hostname + location.pathname; 
    
  2. 給它在我的控制器中的基本路徑,以我的形象:

    imgBig: base_url + 'img/' + $scope.imgBig 
    

T帽子的方式,不安全:消失了,它適用於每個瀏覽器,它獨立於恆定的基本路徑。

希望它能幫助!

+0

所接受,因爲它解決您的問題,您可以標記這個答案。接受你自己的答案在這種情況下是可以接受的。歡迎來到堆棧溢出! –