javascript - 从 JSON 文件 AngularJS 注入(inject)的编译指令

标签 javascript html json angularjs

希望有人能帮助我应对这个挑战。

我使用 $http.get() 从服务器请求 JSON 数据;

来自服务器的数据返回一个对象。对象中的一个值包含 HTML 标记。此标记使用 <div ng-bind-html-unsafe="content" /> 注入(inject)到页面中

在标记中,有一个名为 <poll /> 的自定义指令

使用标准的 AngularJS 指令结构,它不会获取指令并链接它。

如何在从服务器检索到此 HTML 后编译它并调用指令上的链接函数?

谢谢!

最佳答案

The $compile service is what you want.

$compile 服务可以注入(inject)到 Controller 或指令中并在模板上调用。它将返回一个您可以调用的链接函数,传入您要链接的范围。

这是一个例子:

angular.module('app', []);

angular.module('app').controller('MainCtrl', function ($compile, $rootScope) {
  var template = '<special-directive prop="myProp"> </special-directive>';
  var scope = $rootScope.$new();
  var top = document.getElementById('top');
  scope.myProp = 'Say hello to your mother for me';
  top.innerHTML = template;
  
  $compile(top)(scope);
})

angular.module('app').directive('specialDirective', function () {
	return {
      scope:{ prop: '=' },
      restrict: 'E',
      link: function (scope, ele) {
        var html = 'Hello from the special directive<br/><br/>' + scope.prop;
        ele.html(html);
      }
    }
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MainCtrl">
  <div id="top"></div>
</div>

关于javascript - 从 JSON 文件 AngularJS 注入(inject)的编译指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25966790/

相关文章:

python - 使用 Beautiful Soup 搜索属性片段

json - 如何创建一个可以由 Gin 序列化为 json 的排序键值映射?

java - JQuery ajax GET 请求,响应状态为 200 OK 时未触发成功

javascript - 当我在记事本上写完我的javascript程序后,我该把它放在哪里

javascript - 在表单元素中单击

php - 是否可以用来自 html 表单的某些输入替换 SQL 查询的限制值?

json - 将查询参数添加到 Go Json Rest

javascript - Google Maps API v3 - 可点击文本以缩放至标记并打开信息窗口

javascript - 如何从数据表的列中删除默认的点击事件?

javascript - 如何在自适应中折叠列表项的边界