如何在不可见的角度js中应用滤镜?

时间:2015-12-17 07:46:59

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

我正在尝试在列表视图中应用过滤器。每当我在输入字段中键入任何内容时,它都会过滤我的列表。我可以在写入用户名时进行过滤,这对用户可见.example写下“pa”它会对我的列表进行排序并只显示一行。这是正确的。但是当我写“关键字过滤器”时,用户看不到它t filter。换句话说,当我在第二个输入字段(“关键字过滤器”)上键入“Angular js”时..它应该显示 pab ..因为“ pab“ Angular js 关键字。

这是我的代码 http://plnkr.co/edit/TccgJydcZNkXQGpnbbP0?p=preview

// Code goes here

angular.module('myApp', [])
  .controller('myCtrl', function($scope){

  $scope.users = [

    {firstname: 'john', lastname: 'smith',

                keywords: ["HTML", "CSS", "JavaScript", "jQuery", "Photoshop"]

    },
    {firstname: 'pab', lastname: 'due',
             keywords: ["Ruby on Rails", "PostgreSQL", "AngularJS", "Node.js"]

    },
    {firstname: 'bob', lastname: 'rand',            keywords: ["java", "php", "test", "jira"]
}

  ];

});

2 个答案:

答案 0 :(得分:4)

在您的ng-repeat中,您在关键字输入后没有过滤 - 您错过了它。只需将其包括如下:

<div ng-repeat="user in users | filter:userSearch | filter:{ keywords: keyword }">

答案 1 :(得分:0)

你只需要在第二个输入上添加相同的ng-model:

ng-model="userSearch"

<body ng-controller='myCtrl'>
  <div>
    <div>
      <input type="text" placeholder="username search" ng-model="userSearch">
    </div>
    <br>
    <div>
      <input type="text" placeholder="keyword search" ng-model="userSearch">
    </div>
  </div>

plunker:http://plnkr.co/edit/Nqp45xwrZqPLIWDtjGvQ?p=preview

希望能帮助你好运。