此应用程序的一部分从服务器获取HTML,需要显示为实时HTML.这很容易用ng-bind-html-unsafe="expression"指令完成(至少在Angular 1.0.2中).
但是,HTML也有应该运行的JavaScript,因为它定义了HTML中使用的函数,而且使用该指令似乎不会发生.
是否有一些Angular风格的方法呢?或者我是否需要探索带外脚本加载技术?
(请不要讨论我是否应该信任服务器足以运行它发送给我的java脚本.我相信服务器,我知道风险,这是一个非常专业的情况.)
我可以提出我的变体.首先你应该创建指令:
app.directive('html', [ function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.html(attrs.html);
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
然后你可以在标签里面使用它.
<div html="{{code}}"></div>
Run Code Online (Sandbox Code Playgroud)
你需要jQuery(在Angular之前加载它):
"我们研究了jqlite中的支持脚本标签,但是需要做些什么来获得跨浏览器支持涉及很多黑魔法.因此我们决定现在我们只是建议用户使用jquery和在这种特殊情况下的角度" - https://groups.google.com/d/msg/angular/H4haaMePJU0/5seG803by5kJ
另请参见AngularJS:如何在ng-include中创建角度加载脚本?
| 归档时间: |
|
| 查看次数: |
22580 次 |
| 最近记录: |