angular.js - angular如何手动编译后插入的dom?
滿天的星座
滿天的星座 2017-05-15 16:51:11
[AngularJS讨论组]

在页面进行一些操作后,会插入一段html代码
如何编译这段html,使绑定在上面的事件啦,变量生效啊~

滿天的星座
滿天的星座

全部回复(1)
PHP中文网

angular出于安全考虑,我们插入的html代码里的事件和绑定的ng-model都不会起作用。

如果要起作用,需要使用angular的$compile service

我一般处理的时候会使用一个directive

javascriptangular.module(...).directive('jxbBindCompiledHtml', function ($compile) {
  'use strict';

  return {
    template: '

<p></p>

',
    scope: {
      rawHtml: '=jxbBindCompiledHtml'
    },
    link: function (scope, elem, attrs) {
      scope.$watch('rawHtml', function (value) {

        if (!value) {
          return;
        }

        // we want to use the scope OUTSIDE of this directive
        // (which itself is an isolate scope).
        var newElem = $compile($.parseHTML(value))(scope.$parent);
        elem.contents().remove();
        elem.append(newElem);
      });
    }
  };
});

html

html<p jxb-bind-compiled-html="htmlvariable">
</p>

htmlvariable是需要插入的html代码变量

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号