我正在尝试在输入文本中使用$ watch。当我第一次输入时,它返回undefined,当我第二次尝试输入时它不再起作用,等等。
我做错了什么?
$scope.$watch('formNovoCred.dadosEC.representante.cpf', function(newValue, oldValue) {
$rootScope.formNovoCred.dadosEC.representante.cpf = $rootScope.formNovoCred.dadosEC.representante.cpf;
if (newValue != oldValue){
console.log("here", $rootScope.formNovoCred.dadosEC.representante.cpf);
}
}, true);
答案 0 :(得分:0)
了解$ watch
scopeVariable
上面的监视功能采用范围变量ng-model
并监视其中的任何更改。
您不需要在此函数中将范围变量分配给自身,因为ng-change
将更新变量。在你的情况下,你正在比较旧与新。如果您需要对旧值执行某些操作(如果new太大/超出应用程序范围,请将值重新设置为旧值),这非常有用。
如果没有完整的代码图片,我可以在这里提供帮助。
您还可以尝试使用ng-change方法对更改执行某些操作:
Angular的debounce
在每次更改后发生火灾。您可以利用ng-model="yourScopeVariable"
来区分更改事件,直到设定的持续时间之后。这将允许您暂停事件触发,直到说某人通常会完成输入。
将以下内容添加到输入元素作为附加属性。另外,请确保您的输入通过ng-model-options="{ debounce: 1000 }"
示例:
1000
ng-change="changeFunc(canPassParams)"
是ms的时间。 1000 = 1秒
然后您将构建您的更改函数并将调用添加到输入中,如下所示:<T extends Comparable<? super T>>
没有更多信息,这是我可以提供的建议的范围。希望你找到解决方案。