AngularJS:OptionBy Filter选项选择

时间:2015-01-26 18:53:50

标签: angularjs angularjs-ng-repeat angularjs-orderby

我正在制作一个小应用程序,对用户与游戏排行榜类似的点列表进行排序。我在一系列对象上设置了ng-repeat,并在不同选项上选择了ng-show以显示列表中的跨度。跨度显示不同的得分。

我在ng-repeat上添加了orderBy过滤器,因此列表从最大到最小被过滤。例如,当选项选择' Threads Created'选择,然后选择' Post Read'和'帖子回复'隐藏,列表按创建的线程数(从最大到最小)排序。

它适用于两个选项值,但不适用于第三个选项值。知道为什么吗?

              <tr ng-repeat="user in users | orderBy:['-created','-read','-replied']">
            <td> {{user.index}} </td>
            <td> {{user.firstName}} {{user.lastName}}</td>
            <td>
              <span ng-show='discussionsSelect == "created"'>{{ user.created }}</span>
              <span ng-show='discussionsSelect == "read"'>{{ user.read }}</span>
              <span ng-show='discussionsSelect == "replied"'>{{ user.replied }}</span>
            </td>
          </tr>

1 个答案:

答案 0 :(得分:0)

如果我正确地理解了这一点,那么你就不能正确地理解这一点。您的列表只会按照“已创建”进行排序。 orderBy子句的第二个值只有在两个具有相同&#39;创建的对象的情况下才会起作用。被发现。同样,对于orderBy子句中的第三个值。只有当两个项目具有相同的“创建”时才会使用它。然后同样阅读&#39;值。
您需要根据所选的下拉菜单设置一个变量。您可以将其设置为您的选择绑定到的变量的名称。我认为这是讨论选择你的plnkr。

        <tr ng-repeat="user in users | discussionsSelect">