AngularJS orderBy 函数在 ng-repeat 中被忽略

标签 angularjs

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),并且过滤器正在其他元素上工作。

最佳答案

一些事情......

  1. orderBy 接受一个字符串或返回字符串的表达式。该字符串应该是您要在要排序的对象列表中排序的属性的名称。因此,如果数组中的对象具有诸如 [ { 0: 'foo', 1: 'bar', '2': 'blah' } ] 之类的属性,那么你就可以开始了,我猜测。但我怀疑它们的结构是这样的。
  2. orderBy:tabOrdinal() 如果您的表达式是一个函数(如原始帖子中所示),则需要 ()

除此之外,如果您提供 fiddle ,我可以为您提供更多帮助。

关于AngularJS orderBy 函数在 ng-repeat 中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728922/

相关文章:

angularjs - "Uncaught Error: [$injector:unpr]"部署后有 Angular

javascript - 计算我的网页的点击次数

javascript - ng-attr,其中属性有破折号

AngularJs:通过 $emit 在指令之间传播事件

javascript - 为什么angularjs ng-repeat不起作用

javascript - 如何限制从键盘中选择的提前输入选项?

javascript - Angular 的 Jasmine 测试找不到我的 Controller

javascript - Fetch as Google 不呈现 Angular.js 应用程序

javascript - $http 成功功能 block 中不可用的动态元素和范围变量

javascript - 在 Visual Studio 中的另一个 javascript 中添加 AngularJS.min.js 的引用