如何获取Angular指令的编译内容?

时间:2014-10-04 07:38:14

标签: angularjs angularjs-directive

我想在Angular指令中获取渲染内容。这是我的代码:

使用Javascript:

app.controller('appCtrl', function($scope){
    $scope.items = [1,2,3,4]
});
app.directive('pane', function($interpolate, $compile){
    return {
       restrict: 'E',
       scope:true,
       link: function(scope, element, attrs){
            var text = element.html();
            var content = $interpolate(text)(scope);
            alert(content);               
       }
    }
});

HTML:

<div ng-controller='appCtrl'>
<pane>
    <span ng-repeat="item in items">{{item}}, </span>
</pane>
</div>

所以,但是当我运行它时,我只能在警告框中找到“”

ps:我试图关注this answer,但它不起作用

1 个答案:

答案 0 :(得分:1)

您应该尝试从编译函数中获取指令内容。

例如:

app.directive('pane', function($interpolate, $compile){
    return {
       restrict: 'E',

       compile: function(tElement, attrs){

            var content = tElement.children();
            console.log(tElement);
            $(tElement).empty();
            for(i=1;i<10;i++){
                console.log(1);
                tElement.append(content.clone());
            }   
            return {
                post: function(scope, element, attrs){
                    console.log(scope.items);
                }
            }
       },

    }
});