mam prostego przedstawienia, jak tong wiążą-html nie ładuje obraz src
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html="item.html"></div>
</div>
item.html zawiera HTML jak poniżej:
<a href="http://www.youtube.com"><img src="icons/youtube.png" alt="Youtube"/></a>
Jednak wynikowy HTML nie Załaduj obraz:
<a href="http://www.youtube.com"><img alt="Youtube"/></a>
Po pewnym wyszukiwaniu wygląda jak angularjs robi to, aby uniknąć skryptów cross-site, ale byłem ab le, aby załadować obraz bezpośrednio z youtube.
<a href="http://www.youtube.com"><img src="http://img.youtube.com/vi/9bZkp7q19f0/0.jpg" alt="Youtube"/></a>
Co więcej, udało mi się załadować wszystkie obrazy za pomocą ng-bind-html-dangerous.
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html-unsafe="item.html"></div>
</div>
Jeśli używam ng-bind-html-niebezpieczne, nie muszę już moduł ngSanitize, czyli mój kod jest mniej bezpieczne? Mam przypadki użycia, w których ładuję obrazy ze źródeł zewnętrznych.
Jadąc do moich pytań:
Jaka jest różnica między NG-bind-html i oprócz tego, co już wspomniano powyżej ng-bind-html-niebezpieczne. Czy jest jakaś dokumentacja na ten temat? Nie mogłem znaleźć żadnego.
Jak wykonać ładowanie obrazów z serwera hosta i serwerów zewnętrznych, bez konieczności stosowania dyrektywy "niebezpieczne"?
Dzięki!
Wymieniłem URI z ikony/youtube.png do pełnego URL http: //localhost/test/icons/youtube.png i byłem w stanie wykorzystać NG-bind-html. Teraz zauważam kolejny dziwny efekt uboczny. Użycie wersji dezynfekowanej usuwa wewnętrzne informacje o stylu z elementu div zawartego w pliku item.html. – pkrish
Przejrzałem dokumenty $ sanitize i wygląda na to, że są zgodne z projektem. Ale nie rozumiem, dlaczego. – pkrish