角度过滤器复选框

时间:2016-05-19 22:07:27

标签: javascript angularjs checkbox pug ng-repeat

我有一组像这样定义的复选框:

app.UseOpenIdConnectAuthentication

在JS方面:

         span(ng-repeat='angle in anglesList')
            input(type='checkbox', ng-model='angle.selected')
            |  {{angle.angle}}
            br
          hr

对我的重复项目进行过滤:

$scope.anglesList = [
      {
        angle: "Angle 1",
        selected: true
      }, {
        angle: "Angle 2",
        selected: true
      }, {
        angle: "Angle 3",
        selected: true
      }, {
        angle: "Angle 4",
        selected: true
      }
    ];

首次加载时,因为angleList数组中的所有angleList项都设置为selected:true,所以它们都加载为checked。当我取消选中它们时,项目会消失,具体取决于该项目是否具有该角度。这是不方便的,因为如果我只想看到具有角度4的项目,我必须手动取消选中角度1,角度2和角度3.我想要发生的是所有复选框最初都要取消选中,但是仍有物品出现。然后,选中一个复选框时,将项目过滤到该角度。不知道该怎么做。谢谢!

编辑:

以下是我过滤的项目的重复次数:

.filter("angleFilter", function($filter) {
    return function(items, search) {
      var resultsAngle = [];
      if (!search) {
        return items;
      } else {
        for (var i = 0; i < items.length; i++) {
          for (var k = 0; k < items[i].angles.length; k++) {
            for (var j = 0; j < search.length; j++) {
              if (items[i].angles[k] === search[j].angle && search[j].selected === true) {
                var e = $filter('filter')(resultsAngle, {_id:items[i]._id});
                if (e.length > 0) {

                } else {
                  resultsAngle.push(items[i]);
                }
              }
            }
          }
        }
        return resultsAngle;
      }
    }
  })

0 个答案:

没有答案