javascript - Angular/html 中的 OrderBy

标签 javascript html angularjs angularjs-orderby

我有这个代码:

<div flex="66">
            <h3>{{ hack.title }}</h3>
            <h4>{{ hack.description }}</h4>
            <h4>{{ hack.status }}</h4>
            <p>Backs: {{ hacksCtrl.getBacks(hack.id) }}</p>
          </div>

我基本上想按 Backs 排序,基本上意味着 likes,所以喜欢的东西越多,它就会出现在页面的较高位置。

所以我这样做了,但它不起作用:

ng-repeat="hack in hacksCtrl.hacks | orderBy: hacksCtrl.getBacks()"

有什么想法吗?

谢谢

下面的 Controller :

 import Chance from 'chance';
export default function(hack, $state, $sce, HacksService, user) {
  const vm = this;
  vm.hack = hack;

  vm.trustSrc = function(src) {
    return $sce.trustAsResourceUrl(src);
  };

  vm.save = function() {
    HacksService.save(vm.hack);
    $state.go('hacks.view', {
      id: vm.hack.id
    });
  };

  vm.create = function() {
    const chance = new Chance();

    vm.hack.id = chance.guid();
    vm.hack.status = 'proposed';
    vm.hack.createdBy = user.name;
    vm.hack.userProfileImage = user.picture;
    HacksService.create(vm.hack);
    $state.go('hacks.view', {
      id: vm.hack.id
    });
  };

  vm.like = function(id, $event) {
    $event.stopPropagation();
    HacksService.like(id, user);
  };
  vm.hasLiked = function() {
    const userId = user.id;
    const likes = vm.hack.likes;

    if (likes) {
      return (likes.indexOf(userId) !== -1);
    }
  };
  vm.getLikes = function() {
    return (vm.hack.likes) ? vm.hack.likes.length : 0;
  };

  vm.isCreate = function() {
    return !vm.hack;
  };

  vm.goToEdit = function(id) {
    $state.go('hacks.edit', {
      id: id
    });
  };
}

最佳答案

对于您的函数,传入整个 hack 对象,然后只需在 orderBy 语句中命名该函数

vm.getBacks = function(hack) {
    return (hack.backers) ? hack.backers.length : 0;
};

你的 Angular 重复看起来像这样:

ng-repeat="hack in hacksCtrl.hacks | orderBy: hacksCtrl.getBacks"

关于javascript - Angular/html 中的 OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34335690/

相关文章:

javascript - 无法将项目推送到状态内的项目数组

javascript - 使用数组构造函数创建的嵌套数组 - 引用问题

html - 如何发布/提交禁用的输入复选框?

angularjs - 从 ng-repeat 中删除自动排序

angularjs - 循环遍历表单内 ng-form 的所有实例以进行验证

javascript - 在制作Phonegap应用程序时,我应该如何添加列表项并将其保存到本地存储?

javascript - 如何从 JavaScript 函数返回文档/节点?

javascript - 动态限制 slider 的值

javascript - 带有 if 的 html 属性控件

javascript - Protractor 测试不点击我的按钮/元素