我有一个表,它使用过滤的文本区域来构造过滤表并列出计数。DOM 如下。
<div filter-input></div>
<table>
<tr ng-repeat='item in filtered=(mySourceJSON | filter:filterInputService.searchText)'></tr>
.. .. ..
.. .. ..
</table>
过滤器输入是一个指令:
angular.module('myApp')
.directive('filterInput', function () {
return {
controller: 'FilterInputCtrl',
templateUrl: 'views/filter_input.html',
restrict: 'A',
link: function(scope, el, attr){
}
};
});
使用以下控制器:
angular.module('myApp')
.controller('FilterInputCtrl', function ($scope, filterInputService) {
$scope.filterInputService = filterInputService;
});
模板的内容是:
<div>
<span>
<input ng-model='filterInputService.searchText'/>
</span>
<span>
Showing {{filtered.length}} / {{gridItems.length}}
</span>
</div>
empty string
该服务是一个简单的占位符,它在初始化时将 searchText 设置为。
我看到的行为如下:
当我在过滤器输入中键入一个字符时,表格会更新并隐藏与过滤器不匹配的项目,但是,在输入第二个字符之前,过滤项目的计数不会更新。究竟是什么触发了这个?为什么范围直到第二个字符才更新?如何避免这种情况?