javascript - 在 Angular 中通过复选框过滤项目

标签 javascript angularjs checkbox

需要通过单击数组中的复选框来过滤项目。这是我尝试做的事情

    <thead>

    <th><input ng-model="archived.state"  type="checkbox">Show archived</th>

    </th>
<tbody>
      <tr  ng-repeat="paymentinfo in paymentList | filter:keyword | filter:money | filter:getdate | filter:archived">
          <td>{{paymentinfo.date}}</td>
          <td ng-click="singlepage(paymentinfo.id)" ><a>{{paymentinfo.name}}</a> </td>
                  <td>
                      <div class="grey-flag remark-payment">
                          <div class="hover-remark">{{paymentinfo.remark}}</div>
                      </div>
                  </td>
          <td>$ {{paymentinfo.amount}}</td>
          <td id="outmouse">
              <ul  style="list-style: none;" class="gt-reset">
                <li class="dropdown changecoursename">
                    <a   class="dropdown-toggle" data-toggle="dropdown">
                        <span class="tableOperation norlmalstate">Open Course</span>
                    <span  class="tableOperation openedstate">more options</span>
                    <b class="caret"></b>
                </a>
                <ul class="dropdown-menu">
                    <li><a class="tableOperation" ng-click="paymentRemarks()">Remarks</a></li>
                    <li><a class="tableOperation" ng-click="paymentReturn(paymentinfo)">Return</a></li>
                    <li><a class="tableOperation" ng-click="paymentDelete(paymentinfo)">Delete</a></li>

                </ul>
              </li>
          </ul>
          </td>
      </tr>  

我的JS

$scope.datas = [
        {date:'06-12-2016', name : 'Pinao Class', state: 'archived', remark : 'remarled', amount : 101, id : 21},
        {date:'15-04-2016', name : 'drivers Class', state: 'notarchived', remark : 'remarled', amount : 102, id : 22},
        {date:'24-03-2016', name : 'Airplane Class', state: 'archived', remark : 'remarled', amount : 103, id : 23},
        {date:'28-02-2016', name : 'burger Class', state: 'notarchived', remark : 'remarled', amount : 104, id : 24},
         {date:'28-02-2016', name : 'burger Class1', state: 'notarchived', remark : 'remarled', amount : 104, id : 241},
          {date:'28-02-2016', name : 'burger Class2', state: 'notarchived', remark : 'remarled', amount : 104, id : 2432},
           {date:'28-02-2016', name : 'burger Class3', state: 'notarchived', remark : 'remarled', amount : 104, id : 2342},
            {date:'28-02-2016', name : 'burger Class4', state: 'archived', remark : 'remarled', amount : 104, id : 2443},
             {date:'28-02-2016', name : 'burger Class5', state: 'archived', remark : 'remarled', amount : 104, id : 2243},
              {date:'28-02-2016', name : 'burger Class6', state: 'archived', remark : 'remarled', amount : 104, id : 2242},
  ];

  $scope.paymentList = $scope.datas;

如何创建我单击的过滤器以及将显示字段状态为“未存档”的所有项目?取消选中后,所有项目都会再次显示

最佳答案

也许可以试试这个

  <thead>

<th><input ng-model="archived.state"  type="checkbox"
      ng-true-value="'notarchived'" ng-false-value="undefined">Show archived</th>

</th>
<tbody>
  <tr  ng-repeat="paymentinfo in paymentList | filter:keyword | filter:money | filter:getdate | filter:{state: archived.state}">
      <td>{{paymentinfo.date}}</td>
      <td ng-click="singlepage(paymentinfo.id)" ><a>{{paymentinfo.name}}</a> </td>
              <td>
                  <div class="grey-flag remark-payment">
                      <div class="hover-remark">{{paymentinfo.remark}}</div>
                  </div>
              </td>
      <td>$ {{paymentinfo.amount}}</td>
      <td id="outmouse">
          <ul  style="list-style: none;" class="gt-reset">
            <li class="dropdown changecoursename">
                <a   class="dropdown-toggle" data-toggle="dropdown">
                    <span class="tableOperation norlmalstate">Open Course</span>
                <span  class="tableOperation openedstate">more options</span>
                <b class="caret"></b>
            </a>
            <ul class="dropdown-menu">
                <li><a class="tableOperation" ng-click="paymentRemarks()">Remarks</a></li>
                <li><a class="tableOperation" ng-click="paymentReturn(paymentinfo)">Return</a></li>
                <li><a class="tableOperation" ng-click="paymentDelete(paymentinfo)">Delete</a></li>

            </ul>
          </li>
      </ul>
      </td>
  </tr>  

关于javascript - 在 Angular 中通过复选框过滤项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264410/

相关文章:

AngularJS:在 RouteProvider 中解决 - 检测成功/失败?

javascript - 从json中读取数据

javascript - 如果选中复选框,则启用 EditorFor

jQuery 复选框事件处理

java - 保持登录 CheckBox Android

javascript - 如何在 Node.js 中使用 XHR API?

javascript - 如何制作嵌套列表?

javascript - 第二次点击时克拉不旋转

javascript - 如何从另一个页面加载div的内部html?

javascript - myVar 绑定(bind)到哪个元素? `ng-init` 的问题