ng-repeat中的自定义指令(在Class上)永远不会被求值

Custom directive (on Class) inside ng-repeat never evaluated

本文关键字:永远 Class 自定义 指令 ng-repeat      更新时间:2023-09-26

在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>

依赖于condition的类treeview代表了我定义的自定义指令:

angular.module('app.mymodule')
.directive('treeview', function() {
    return {
        restrict: 'C',
        link: function(scope, element, attrs) {
            // jquery tree plugin 
            element.tree();
        }
    };
})
这将使jquery 插件在具有treeview类的元素上启用。
问题是,即使这些元素被正确地添加到dom中,并且有一个类treeview,自定义指令treeview也不会被评估(通过断点验证)。

相反,如果我使用普通的

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

那么指令就会正常工作。
我认为这是ng-repeat创建的范围的某种冲突。

跨界

在你的指令中设置translude为true。