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