ng-repeat中的自定义指令(在类上)从未评估过

时间:2015-09-25 11:12:57

标签: javascript jquery angularjs treeview

在Angular(1.2)中,我使用ng-repeat打印出一些li个元素,并且我有条件地向他们申请了一个ng-class的类。

 <li ng-repeat="(linkName, link) in navigation" ng-class="{'treeview':condition}">
    <a href ng-if="link.state" ui-sref="{{link.state}}">
        <i class="fa {{link.icon}}"></i>
        <span>{{linkName}}</span>
    </a>
</li>

依赖于treeview的班级condition代表我已定义的自定义指令:

angular.module('app.mymodule')
.directive('treeview', function() {
    return {
        restrict: 'C',
        link: function(scope, element, attrs) {
            // jquery tree plugin 
            element.tree();
        }
    };
})

这应该在具有treeview类的元素上启用jquery 插件。
问题是,即使很难将元素正确地添加到dom并且具有类treeview,也不会对自定义指令treeview进行求值(使用断点进行验证)。

相反,如果我做一个简单的

<li class="treeview">
    //...
</li>

然后该指令按预期工作。
我认为这与ng-repeat ..

创建的范围存在某种冲突

1 个答案:

答案 0 :(得分:0)

Transclude

在你的指令中将transclude设置为true。这使您可以评估自定义标记之间的内容。