我有一个表,它使用过滤的文本区域来构造过滤表并列出计数。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 设置为。
我看到的行为如下:
当我在过滤器输入中键入一个字符时,表格会更新并隐藏与过滤器不匹配的项目,但是,在输入第二个字符之前,过滤项目的计数不会更新。究竟是什么触发了这个?为什么范围直到第二个字符才更新?如何避免这种情况?