【发布时间】:2017-03-13 13:51:06
【问题描述】:
我是 Angular js 的新手。 所以这可能是一个非常基本的问题
我有外部 API 数据,它是用户生成的内容。 客户端想要动态显示内容。在内容中,有创建指令的脚本,我尝试使用 ng-bind-html 但它不起作用。
<div ng-bind-html="myHTML"></div>
想要执行创建指令的脚本,并且应该在 html 内容中注入相同的指令。
var data = '<script> var app = angular.module(\'main\', []);' +
'app.directive(\'slideImageComparison\', function () {return { restrict: \'E\', scope: { imageInfo: \'=info\'}, link: function (scope, elem, attr) { console.log(\'directive called\');' +
'},template: \'<div class="slide-comb"> test </div>\'' +
'}; }); </script> <slide-image-comparison></slide-image-comparison>';
$scope.myHTML= $sce.trustAsHtml(data)
我添加了反斜杠来转义单引号。
在这里感谢您的帮助。
【问题讨论】:
-
由于浏览器的设计,这不起作用。
<script>插入 HTML 的标签在页面加载时执行;由于页面加载时此内容不存在,因此永远不会执行。你应该研究角度延迟加载技术。 -
此外,如果它仍然执行,此脚本会破坏您的
main模块,因为它似乎是重新声明main模块,而不是添加到它。 -
谢谢,有没有其他方法可以做到这一点?
-
@user3106005 使用正则表达式获取脚本并评估它怎么样?
-
对不起,我是新手,任何例子都会非常感激。
标签: javascript angularjs ng-bind-html