我有一个像这样的简单演示
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html="item.html"></div>
</div>
item.html 包含这样的 html:
<a href="http://www.youtube.com"><img src="icons/youtube.png" alt="Youtube"/></a>
但是,生成的 html 不会加载图像:
<a href="http://www.youtube.com"><img alt="Youtube"/></a>
经过一番搜索,看起来 angularjs 这样做是为了避免跨站点脚本,但我能够直接从 youtube 加载图像。
<a href="http://www.youtube.com"><img src="http://img.youtube.com/vi/9bZkp7q19f0/0.jpg" alt="Youtube"/></a>
此外,我能够使用 ng-bind-html-unsafe 加载所有图像。
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html-unsafe="item.html"></div>
</div>
如果我使用 ng-bind-html-unsafe,我不再需要 ngSanitize 模块,这意味着我的代码不那么安全了吗?我确实有从外部来源加载图像的用例。
来回答我的问题:
除了我上面提到的之外,ng-bind-html 和 ng-bind-html-unsafe 之间有什么区别。有这方面的文件吗?我找不到任何东西。
如何完成从主机服务器和外部服务器加载图像,而不必使用 unsafe 指令?
谢谢!