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