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 正常工作,数据正确绑定(bind),并且过滤器正在其他元素上工作。
最佳答案
一些事情......
orderBy
接受一个字符串或返回字符串的表达式。该字符串应该是您要在要排序的对象列表中排序的属性的名称。因此,如果数组中的对象具有诸如[ { 0: 'foo', 1: 'bar', '2': 'blah' } ]
之类的属性,那么你就可以开始了,我猜测。但我怀疑它们的结构是这样的。orderBy:tabOrdinal()
如果您的表达式是一个函数(如原始帖子中所示),则需要()
。
除此之外,如果您提供 fiddle ,我可以为您提供更多帮助。
关于AngularJS orderBy 函数在 ng-repeat 中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728922/