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

时间:2015-05-17 11:46:10

标签: 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,进行一些更改,然后进行编译。

1 个答案:

答案 0 :(得分:4)

如果你想在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