我正在创建一个指令,该指令从通过属性传入的方法呈现内容列表。除了传递一个从中获取数据的方法之外,它还接受两个属性来为列表中呈现的 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。