orderBy函数被完全忽略。我在一个点上添加了一个console.log进行测试,甚至没有调用该函数。数据仍然显示但无序。
HTML代码
<div id="tabs">
<a ng-repeat="tab in tabs | orderBy:tabordinal" id="tab-{{tab.tab_id}}" class="{{getClasses(tab)}}" ng-click="tabclick(tab)">{{tab.label}}</a>
</div>
JS功能
$scope.tabordinal = function (tab) {
return $scope.taborder.indexOf(tab.tab_id);
};
其他所有内容都已正确设置(即ng-click工作正常,数据绑定正确,过滤器正在处理其他元素。
答案 0 :(得分:4)
一些事情......
orderBy
接受一个字符串或一个返回字符串的表达式。该字符串应该是您要在订购的对象列表中排序的属性的名称。因此,如果数组中的对象具有[ { 0: 'foo', 1: 'bar', '2': 'blah' } ]
之类的属性,那么我猜你会很高兴。但我怀疑它们的结构是那样的。orderBy:tabOrdinal()
如果您的表达式是一个函数,因为您的表达式位于原始帖子中,则需要()
。除此之外,如果你提供一个小提琴,我可以给你更多的帮助。