简体   繁体   English

如何使用angularjs使用过滤器进行ng-repeat?

[英]How to do ng-repeat with filter using angularjs?

Here I added my code i want to search based on user input i tried this but 在这里,我添加了我想根据用户输入进行搜索的代码,但是尝试了

filter: first_name_model

i am not getting proper result 我没有得到适当的结果

for example : Run code Snippet 例如:运行代码片段

enter "2" and see the result (we need to get only one record but it showing all records ) 输入“ 2”并查看结果(我们只需要获取一条记录,但它会显示所有记录)

enter "as" and see the result (we need to get only one record(asif yohana) but it showing 2 records ) 输入“ as”并查看结果(我们只需要获取一条记录(asif yohana),但其中显示2条记录)

i want to filter only these two fields 我只想过滤这两个字段

1.no 1.no

2.DisplayName 2.DisplayName

may be need to use 'OR' condition . 可能需要使用“ OR”条件。

help me out to move forward 帮助我前进

 angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.students = [{ "firstname": "irfan", "lastname": "k", "no":"2", "userid": "5706b916bb729ecc876192d2" }, { "firstname": "asif", "lastname": "Y", "no":"3", "userid": "5706b916bb729ecc87619245" }, { "firstname": "arun", "lastname": "D", "no":"6", "userid": "5706b916bb729ecd876452d2" }, { "firstname": "smart", "lastname": "k", "no":"5", "userid": "5706b916bb729ecc876452d2" }, { "firstname": "rajesh", "lastname": "v", "no":"4", "userid": "5706b916bb729ecc87619245" } ]; $scope.users = [{ "_id": "5706b916bb729ecc87619245", "DisplayName": "irfan kadhar", }, { "_id": "5706b916bb729ecc876192d2", "DisplayName": "asif yohana", }, { "_id": "5706b916bb729ecc876452d2", "DisplayName": "smar kiran", }, { "_id": "5706b916bb729ecd876452d2", "DisplayName": "arun dinesh ", } ] if ($scope.students) { for (var i = 0; i < $scope.students.length; i++) { for (var j = 0; j < $scope.users.length; j++) { if ($scope.students[i].userid == $scope.users[j]._id) { $scope.students[i].AssignedToDisplayName = $scope.users[j].DisplayName; } } } } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <div ng-app="myApp" ng-controller="namesCtrl"> filter data <input type = "text" ng-model = "first_name_model"/><br><br><br> <table> <tr> <th>Number</th> <th>DisplayName</th> </tr> <tr ng-repeat="student in students | filter: first_name_model"> <td><input type="text" ng-model ="student.no"></td> <td> <select ng-model="student.userid" placeholder="userid" name="userid{{$index}}"> <option ng-repeat="user in users | orderBy: 'DisplayName'" ng-value="user._id">{{user.DisplayName}}</option> </select> </td> </tr> </table> </div> 

Please change ng-model of input to first_name_model.no It works form me 请将输入的ng-model更改为first_name_model.no

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="namesCtrl">
         filter data <input type = "text" ng-model = "first_name_model.no"/><br><br><br>
         <table>
            <tr>
               <th>Number</th>
               <th>DisplayName</th>
            </tr>

            <tr ng-repeat="student in students | filter: first_name_model">
               <td><input type="text" ng-model ="student.no"></td>

               <td>
                  <select  ng-model="student.userid"  placeholder="Assigned To" name="userid{{$index}}" >
                  <option ng-repeat="user in users | orderBy: 'DisplayName'" ng-value="user._id">
                     {{user.DisplayName}}</md-option>
                     </md-select>
               </td>
            </tr>
         </table>
      </div>

  angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.search = function(item) { if (!$scope.query || (item.no.toLowerCase().indexOf($scope.query) != -1) || (item.AssignedToDisplayName.toLowerCase().indexOf($scope.query) != -1) ){ return true; } return false; }; $scope.students = [{ "firstname": "irfan", "lastname": "k", "no":"2", "userid": "5706b916bb729ecc876192d2" }, { "firstname": "asif", "lastname": "Y", "no":"3", "userid": "5706b916bb729ecc87619245" }, { "firstname": "arun", "lastname": "D", "no":"6", "userid": "5706b916bb729ecd876452d2" }, { "firstname": "smart", "lastname": "k", "no":"5", "userid": "5706b916bb729ecc876452d2" }, { "firstname": "rajesh", "lastname": "v", "no":"4", "userid": "5706b916bb729ecc87619245" } ]; $scope.users = [{ "_id": "5706b916bb729ecc87619245", "DisplayName": "irfan kadhar", }, { "_id": "5706b916bb729ecc876192d2", "DisplayName": "asif yohana", }, { "_id": "5706b916bb729ecc876452d2", "DisplayName": "smar kiran", }, { "_id": "5706b916bb729ecd876452d2", "DisplayName": "arun dinesh ", } ] if ($scope.students) { for (var i = 0; i < $scope.students.length; i++) { for (var j = 0; j < $scope.users.length; j++) { if ($scope.students[i].userid == $scope.users[j]._id) { $scope.students[i].AssignedToDisplayName = $scope.users[j].DisplayName; } } } } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <div ng-app="myApp" ng-controller="namesCtrl"> filter data <input type = "text" ng-model = "query"/><br><br><br> <table> <tr> <th>Number</th> <th>DisplayName</th> </tr> <tr ng-repeat="student in students | filter:search"> <td><input type="text" ng-model ="student.no"></td> <td> <select ng-model="student.userid" placeholder="Assigned To" name="userid{{$index}}"> <option ng-repeat="user in users | orderBy: 'DisplayName'" ng-value="user._id">{{user.DisplayName}}</option> </select> </td> </tr> </table> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM