【问题标题】:Filtering an Angular ng-repeat with “track by” by a boolean property通过布尔属性过滤带有“track by”的Angular ng-repeat
【发布时间】:2016-11-23 07:46:58
【问题描述】:

$scope.users = [{
  "firstname": "Steve",
  "lastname": "Jobs",
  "id": 1,
  "userLog": {
    "id": 1,
    "userId": "Steve01",
    "enabled": true
  }
}, {
  "firstname": "Michelle",
  "lastname": "Jobs",
  "id": 2,
  "userLog": {
    "id": 2,
    "userId": "Michelle02",
    "enabled": false
  }
}];
<div ng-repeat="user in users|  filter: { enabled: true } track by user.userLog.id ">

帮助我如何过滤如果启用为真,用户详细信息将显示,否则隐藏。

谢谢

【问题讨论】:

  • 你可以使用 ng-if
  • enabled 是嵌套的,因此您应该像这样更改它: filter: { userLog.enabled: true }

标签: javascript angularjs angularjs-ng-repeat


【解决方案1】:
<div ng-repeat="user in users|  filter: { userLog.enabled: true } track by user.userLog.id ">

【讨论】:

    【解决方案2】:

    Js

    <div ng-repeat="user in users | filter: {userLog :{enabled:true}}">
        {{user.firstname}}
    </div>
    

    示例

    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
      $scope.users = [{
        "firstname": "Steve",
        "lastname": "Jobs",
        "id": 1,
        "userLog": {
          "id": 1,
          "userId": "Steve01",
          "enabled": true
        }
      }, {
        "firstname": "Michelle",
        "lastname": "Jobs",
        "id": 2,
        "userLog": {
          "id": 2,
          "userId": "Michelle02",
          "enabled": false
        }
      }];
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="myCtrl">
    
      <div ng-repeat="user in users | filter: {userLog :{enabled:true}}">
        {{user.firstname}}
      </div>
    </div>

    【讨论】:

      【解决方案3】:

      试试这个:

      <div ng-repeat="user in users |  filter: (!user.userLog.enabled || '') track by user.userLog.id">
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签