我正在创建一个指令,该指令从通过属性传入的方法呈现内容列表。除了传递一个方法来获取数据之外,它还接受两个属性来设置列表中呈现的ul和li元素的类。当我在li元素上设置类时,它工作正常。当我尝试在ul上设置一个类时,混乱随之发生:ng-repeat不再按预期工作,它抛出异常“undefined is not a function”
这是一个有问题的指令的简化版本。
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}},一切正常。我很困惑为什么它适用于李,但不适用于ul。
设置了一个jsfiddle