在下面的Angularjs片段中,默认显示整个表,并在开始键入时对其进行过滤.
如果最佳做法是将其更改为默认情况下不显示结果,并且仅在搜索查询中至少有3个结果匹配后才开始显示结果?
奖金问题,如果输入的最少2个字符,您将如何仅显示结果?
Html:
<div ng-app="myApp">
<div ng-controller="PeopleCtrl">
<input type="text" ng-model="search.$">
<table>
<tr ng-repeat="person in population.sample | filter:search">
<td>{{person.name}}</td>
<td>{{person.job}}</td>
</tr>
</table>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Main.js:
var myApp = angular.module('myApp', []);
myApp.factory('Population', function () {
var Population = {};
Population.sample = [
{
name: "Bob",
job: "Truck driver"
}
// etc.
];
return Population;
});
function PeopleCtrl($scope, Population) {
$scope.people = Population;
}
Run Code Online (Sandbox Code Playgroud)
你可以在你的标记中完成所有这些,实际上...... 这是一个可以证明的东西
这是标记的变化:
<input type="text" ng-model="search">
<table ng-show="(filteredData = (population.sample | filter:search)) && filteredData.length >= 3 && search && search.length >= 2">
<tr ng-repeat="person in filteredData">
<td>{{person.name}}</td>
<td>{{person.job}}</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
编辑:改变我的回答以反映您的要求.
| 归档时间: |
|
| 查看次数: |
4544 次 |
| 最近记录: |