AngularJS Filter on Boolean仅适用于true

时间:2014-10-09 20:49:36

标签: angularjs

这对我来说似乎很奇怪。我正在过滤一组对象,如下面的示例。

{
    "queried": false,

},
{
    "queried": true,
}

我正在使用ng-repeat和过滤器。

ng-repeat="message in messages |  filter:{queried:true} ">

当我将过滤器设置为查询时:true我得到了查询过的对象:true。

但是,如果我将过滤器设置为查询:false我得到所有对象。

查询的结果相同:!true

2 个答案:

答案 0 :(得分:1)

你确定请看那个演示

var app = angular.module('app', []);



app.controller('firstCtrl', function($scope) {
  $scope.messages = [{
    "queried": false,

  }, {
    "queried": true,
  }];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app">
  <input type="radio" ng-model="enable" ng-value="false">False
  <input type="radio" ng-model="enable" ng-value="true">True
  <br/>
  <hr/>

  <div ng-controller="firstCtrl">
    <li ng-repeat="message in messages |  filter:{queried:enable} ">{{message}}</li>
  </div>
</body>

答案 1 :(得分:0)

我把一个小伙子放在一起,它似乎对我有用。确保使用正确的角度版本。

function HelloCntl($scope) {
    $scope.messages = [{'queried':true}, {'queried':true},{'queried':false}, {'queried':false},{'queried':true}];

这是视图

<div ng:app="myApp">
 <div ng-controller="HelloCntl">

     <p> True results:</p>
   <div ng:repeat="message in messages | filter:{queried:true} ">
       {{message.queried}}         
    </div>
     <br/>
      <p> True results:</p>
   <div ng:repeat="message in messages | filter:{queried:false} ">
       {{message.queried}}         
    </div>

</div>
</div>

Here is the jsFiddle