2014-02-17 3 views
1

Я просто хотел добавить изображение в свое приложение. Как сообщил я использовал нг-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

Из вашего описания, если 'unsafe:' все еще добавляется, даже с '$ sceProvider.enabled (false)', похоже, что некоторое использование '$ sanitize' все еще происходит. Может быть связано с текущей ошибкой AngularJS - проверьте https://github.com/angular/angular.js/issues/2901 для получения подробной информации и возможного исправления. –

+0

Спасибо за помощь Алекс, но я пробовал исправить, но ** «небезопасно:» ** все еще существует: 'var myApp = angular.module ('myApp', [], function ($ compileProvider) { $ compileProvider .imgSrcSanitizationWhitelist (/^\ s * ((https? | ftp | mailto) :) | # /); }); ' – Surreal

ответ

1

нашел решение сам:

  1. Получить текущий базовый унифицированный благодаря Местоположение объекта:

    var base_url = location.protocol + "//" + location.hostname + location.pathname; 
    
  2. отдай его в качестве базового пути к моему образу в моем контроллере:

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

T hat way, небезопасно: исчез, он работает на всех браузерах и не зависит от постоянного базового пути.

Надеюсь, это поможет!

+0

Вы можете пометить этот ответ как принятый, так как он решил вашу проблему. Принятие вашего собственного ответа приемлемо в таких случаях. Добро пожаловать в переполнение стека! –