我的模板中有这样的东西:
<input name="searchText" placeholder="Search" data-type="search"
ng-model="searchText"
ng-change="searchRecords()"
ng-keyup="onKeyUp()">
当我到达该模板时,searchRecords()会调用函数(触发 ng-change)。我只想searchRecords()在我开始输入时被调用(更改searchText将触发ng-change)。现在它在控制器初始化时被触发。
我试图在控制器中设置searchText为null,''但它是一样的。
这种行为是设计使然还是我遗漏了什么?
编辑:
我意识到这段代码会触发我的searchRecords():
$scope.$watchGroup(['daysBefore', 'daysAhead'], function (newValues, oldValues, scope) { ... }
编辑:
我删除ng-change并添加了这个:
$scope.$watch('searchText', function (newValue, oldValue) {
$scope.searchRecords();
});
$scope.searchText在控制器初始化时执行此代码,无需任何更改。