美文网首页
angularjs 手动编译代码

angularjs 手动编译代码

作者: sherlock221b | 来源:发表于2015-10-20 23:59 被阅读1627次

有些时候我们会遇到 html不是预先在DOM中定义的情况,比如从后台传递过来的html.
angular出于安全考虑,我们插入的html代码里的事件和绑定的ng-model都不会起作用
这些html 如果含有angularjs的 指令 则需要手动编译下.

使用$compile

  1. 基本
    <pre>
    //获得模版
    var template = $compile("<div ng-click='testFun();'>{{test}}</div>");
    //数据填充至模版生成 视图
    var newDom = template($scope);
    //填充到指定位置
    $("#test").html(newDom);
    </pre>

  2. 连写
    <pre>
    //连这写
    var newDom = $compile("<div>{{test}}</div>")($scope);
    $("#test").html(newDom);
    </pre>

使用封装的指令

  1. 指令
    <pre>
    (function() {
    'use strict';
    var module = angular.module('angular-bind-html-compile', []);
    module.directive('bindHtmlCompile', ['$compile',
    function($compile) {
    return {
    restrict: 'A',
    link: function(scope, element, attrs) {
    scope.$watch(function() {
    return scope.$eval(attrs.bindHtmlCompile);
    },
    function(value) {
    element.html(value);
    $compile(element.contents())(scope);
    });
    }
    };
    }]);
    } ());
    </pre>

  2. html/js
    <pre>
    <code>
    $scope.htmlDom = "<div ng-click='testFun();'>{{test}}</div>";
    <code>
    </pre>
    <pre>
    <div bind-html-compile="htmlDom" ></div>
    </pre>
    需要在app.js 中指定依赖angular-bind-html-compile模块. 使用封装指令确实事半功倍.

$interpolate 待写

相关文章

  • angularjs 手动编译代码

    有些时候我们会遇到 html不是预先在DOM中定义的情况,比如从后台传递过来的html.angular出于安全考...

  • java手动编译代码上线

    java编译代码上线 快速部署tomcat

  • 使用webpack-dev-server

    每次要编译代码时,手动运行npx webpack | npx webpack --config webpack....

  • 3 开发时自动编译代码工具总结

    开发时自动编译工具 每次要编译代码时,手动运行 npm run build 就很麻烦 webpack 中有几个不同...

  • 2018-12-29 自动编译重启

    Springboot每次修改代码需要手动编译重启,只需要POM文件引用

  • 手动编译Grafana RPM包

    对于有修改代码需求情况,我们需要手动编译Grafana RPM包,下面记录了编译的过程 上述命令会在 grafan...

  • 12- webpack 自动编译代码

    每次要编译代码时,手动运行 npm run build 就会变得很麻烦。使用 webpack-dev-server...

  • 手动编译

    不同的理念 Linux与windows实在有很大的理念差异。不说商业运作,盖茨在微软的发展阶段利用DOS的兼容性迅...

  • Angular 中的生命周期

    1、编译阶段 第一个阶段是编译阶段。在编译阶段,AngularJS会遍历整个HTML文档并根据JavaScript...

  • angular的生命周期 21

    1、编译阶段 第一个阶段是编译阶段。在编译阶段,AngularJS会遍历整个HTML文档并根据JavaScript...

网友评论

      本文标题:angularjs 手动编译代码

      本文链接:https://www.haomeiwen.com/subject/lvtthttx.html