javascript - AngularJS:在编译之前获取指令内容

标签 javascript angularjs angularjs-directive angularjs-ng-transclude

我想在编译之前获取指令的 html 内容。

这是一个例子:

<my-directive>
  <ul>
    <li ng-repeat="item in items">{{item.label}}</li>
  </ul>
</my-directive>

我想获取 my-directive 的所有内容并将其从中删除并在其他地方使用它(不在它自己的指令中)

换句话说,我想访问指令 DOM,进行一些更改,然后进行编译。

最佳答案

如果你想在 Angular 编译之前获取指令内容,那么你需要使用指令的编译函数:

app.directive('myDirective', function() {
    return {
        compile: function(tElement) {

            var html = tElement.html();
            console.log(html);

            // return link function if needed
            return function(scope, element) {
                console.log('link function');
            }
        }
    };
});

演示: http://plnkr.co/edit/E5uuZY74iYc3g9s6sZkc?p=preview

关于javascript - AngularJS:在编译之前获取指令内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286613/

相关文章:

javascript - 用 javascript 创建的基本计算器..使用警报告诉用户任何错误。可能的错误包括:

javascript - 在选择框上过早触发更改事件

javascript - 重新启动浏览器后,angular ngCookies 不保存 cookie

angularjs - 如何将参数从 AngularJS 指令传递到 AngularJS Controller 函数

javascript - Angular 错误 : [ng:area] and [$injector:unpr] when import ngUpload

angularjs - 使用带有 Angular xeditable 的 bootstrap-datepicker

Javascript/Typescript 将默认常量导出为异步函数调用的值

javascript - 在 webview 中隐藏滚动条

javascript - 窗口调整信息的 Angular

javascript - 从 ForEach 循环访问父对象的方法