$ compile是在为Angular表达式甚至评估字符串之前加载图像

Mik*_*ike 2 angularjs angularjs-scope

我正在构建一个服务来处理我的Angular应用程序中的模态窗口,所以有一些手动工作来链接模板,范围和控制器.

我正在使用$ compile,以构建模板并附加到范围,例如:

$compile('<h1>This is my window</h1><img src="{{ imageUrl }}">')($scope);
Run Code Online (Sandbox Code Playgroud)

一切都运行正常,但是...浏览器尝试在HTML字符串甚至评估为Angular表达式之前加载任何内容,例如图像.例如,在这种情况下,浏览器尝试逐字加载" http://myhost.com/ {{imageUrl}}",然后立即加载正确的URL,因为拾取了Angular表达式.

这会在调用$ compile()($ scope)时立即发生,甚至不会将返回的模板附加/插入到DOM中.

基本上,浏览器似乎在Angular替换Angular表达式之前解析HTML - 浏览器将请求HTML中的任何类型的远程内容.这是怎么回事?

JB *_*zet 11

使用ng-src而不是src.这就是它的用途.