[英]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.