AngularJS - ng-change通过控制器初始化触发

Dil*_*rov 2 javascript angularjs angularjs-ng-change

我的模板中有这样的东西:

<input name="searchText" placeholder="Search" data-type="search" 
       ng-model="searchText" 
       ng-change="searchRecords()" 
       ng-keyup="onKeyUp()">
Run Code Online (Sandbox Code Playgroud)

当我到达该模板时,searchRecords()调用函数(触发ng-change).我想searchRecords()只在我开始输入时被调用(更改searchText将触发ng-change).现在它被控制器初始化触发了.

我试图设置searchTextnull,''在控制器,但它是一样的.

这种行为是设计还是我遗漏了什么?

编辑:

我意识到这段代码触发了我searchRecords():

$scope.$watchGroup(['daysBefore', 'daysAhead'], function (newValues, oldValues, scope) { ... }
Run Code Online (Sandbox Code Playgroud)

编辑:

我删除了ng-change并添加了这个:

$scope.$watch('searchText', function (newValue, oldValue) {
                $scope.searchRecords();
            });
Run Code Online (Sandbox Code Playgroud)

在没有任何改变的情况下,$scope.searchText该代码在控制器初始化时执行.

小智 5

您可以使用ng-init设置标志,例如:"ng-init ='initializing = true'",并在ng-change函数内检查