在AngularJS列表顶部选中复选框的排序项

时间:2018-09-06 22:00:25

标签: angularjs

我将比较两个对象数组,并将其与选中了相同对象复选框的对象一起显示。现在,我想将带复选框的列表排序为默认状态。 我还想通过单击标题进行排序以按升序排序。

 <div>header</div>
    <div class="search" ng-repeat="items in products ">
        <label >{{item.name}}</label>

   <input type="checkbox" ng-model="item.checked" 
                          ng-click="checked(item,productlist)"
                          ng-checked=" checked(item,productlist)"> 
    </div>

我尝试使用orderBy:[‘-checked’,’item’]: true对选中的内容进行排序,但无法正常工作。任何想法

1 个答案:

答案 0 :(得分:1)

这里有一些问题...

  1. 您有ng-repeat="items in products",但是您在此范围内引用了item而不是items

  2. 您具有要传递给checked()ng-click的{​​{1}}方法。这到底在做什么?您不应该将ng-checkedng-checked-https://docs.angularjs.org/api/ng/directive/ngChecked

  3. 结合使用
  4. 通过将ng-model传递到'-checked',将以相反的orderBy值对项目进行排序,即,将首先checked对项目进行排序,{{1 }}最后。然后,您将false作为参数true传递给true,因此该列表将再次反转。您不必要地颠倒了两次订购-https://docs.angularjs.org/api/ng/filter/orderBy

这可能会更好...

reverse