AngularJS: 编译前获取指令内容

AngularJS: Get directive content before compiling

我想在编译之前获取指令的 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