1

我正在创建一个指令,该指令从通过属性传入的方法呈现内容列表。除了传递一个从中获取数据的方法之外,它还接受两个属性来为列表中呈现的 ul 和 li 元素设置一个类。当我在 li 元素上设置类时,它工作正常。当我尝试在 ul 上设置一个类时,随之而来的是混乱:ng-repeat 不再按预期工作,并引发异常“未定义不是函数”

这是有问题的指令的简化版本。

var myApp = angular.module('myApp',[]).
directive('contentList',function(){
   return {
       restrict: 'E',
       replace: true,
       transclude: true,
       scope: {
           method:'&',
           ulclass: '@',
           liclass: '@'
       },
       template: '<div class="content-list-wrapper"> ' +
                    '<div class="content-loader" ng-show="loading"><i>Loading...</i></div>' +
       '<ul class="content-list {{ulclass}}">' +
                        '<li class="content-list-repeat {{liclass}}" ng-repeat="item in items" ng-transclude></li>' +
                    '</ul>' +
                '</div>',
       link: function(scope,iElement,iAttrs){
           scope.items = scope.method();
       }
   } ;
});

如果在 ul 元素的 class 属性中删除 {{ulclass}},一切正常。我很困惑为什么它适用于 li,但不适用于 ul。

我在http://jsfiddle.net/woogychuck/wqU63/设置了一个 jsfiddle

4

0 回答 0