【问题标题】:how to add filter in angular within array如何在数组中添加角度过滤器
【发布时间】:2017-11-07 18:28:33
【问题描述】:

我有以下记录,我想按我输入的名称过滤 ng-repeat,但它但不起作用,请帮帮我

  ng-repeat="contact in vm.contacts | filter: {name: vm.chatSearch}

 "userlist": [
        {
            "_id": "59edd7c5ff809c1c4c7a43c2",
            "updatedDatetime": "2017-10-23T11:51:33.106Z",
            "createdDatetime": "2017-10-23T11:51:33.106Z",   
            "user_id": {
                "_id": "59f07d5c935f27764c8d1090",             
                "name": "james"
            },
            "__v": 0
        }
        ]

【问题讨论】:

标签: angularjs angularjs-scope angularjs-ng-repeat


【解决方案1】:

试试:

ng-repeat="contact in vm.contacts | filter: {user_id: {name: vm.chatSearch}}"

Demo plunker


例子:

<ul>
  <li ng-repeat="contact in contacts | filter: {user_id: {name: chatSearch}}">
    {{contact.name}}  user_id: {{contact.user_id.name}}
  </li>
</ul>

【讨论】:

    【解决方案2】:

    下面的例子可能对你有帮助

    HTML

    <html ng-app>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body ng-controller="MyCtrl">
      <input ng-model="results.year">
    <div ng-repeat="subject in results.subjects | filter:{grade:'A'}">
        <input ng-model="subject.title" />
    </div>
    </body>
    </html>

    JS

      function MyCtrl($scope) {
      $scope.results = {
        year:2013,
        subjects:[
          {title:'English',grade:'A'},
          {title:'Maths',grade:'A'},
          {title:'Science',grade:'B'},
          {title:'Geography',grade:'C'}
        ]
      };
    }
    

    谢谢, 阿伦

    【讨论】:

      【解决方案3】:

      你需要这样的东西,

      <li ng-repeat="user in vm.contacts  | filter: {user_id: {name: searchterm}}"><span>{{user.user_id.name}}</span></li>
      

      演示

       var app = angular.module('myapp',[]);
       app.controller('personController',function(){
        var vm = this;
        vm.contacts =   [
              {
                  "_id": "59edd7c5ff809c1c4c7a43c2",
                  "updatedDatetime": "2017-10-23T11:51:33.106Z",
                  "createdDatetime": "2017-10-23T11:51:33.106Z",   
                  "user_id": {
                      "_id": "59f07d5c935f27764c8d1090",             
                      "name": "james"
                  },
                  "__v": 0
              }
              ];
       });
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
      <div ng-app = "myapp" ng-controller = "personController as vm">
       <input ng-model="searchterm"/>
        <ul>
          <li ng-repeat="user in vm.contacts  | filter: {user_id: {name: searchterm}}"><span>{{user.user_id.name}}</span></li>
      </ul>
        </div>

      【讨论】:

      • 我在准备演示时发布的内容与您相同 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2016-06-29
      • 1970-01-01
      • 2021-04-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多