$ watch输入文本返回undefined

时间:2017-12-29 16:11:32

标签: angularjs watch

我正在尝试在输入文本中使用$ 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);

1 个答案:

答案 0 :(得分:0)

了解$ watch

scopeVariable

上面的监视功能采用范围变量ng-model并监视其中的任何更改。

您不需要在此函数中将范围变量分配给自身,因为ng-change将更新变量。在你的情况下,你正在比较旧与新。如果您需要对旧值执行某些操作(如果new太大/超出应用程序范围,请将值重新设置为旧值),这非常有用。

如果没有完整的代码图片,我可以在这里提供帮助。

您还可以尝试使用ng-change方法对更改执行某些操作:

Angular的debounce在每次更改后发生火灾。您可以利用ng-model="yourScopeVariable"来区分更改事件,直到设定的持续时间之后。这将允许您暂停事件触发,直到说某人通常会完成输入。

将以下内容添加到输入元素作为附加属性。另外,请确保您的输入通过ng-model-options="{ debounce: 1000 }"

与Angular变量绑定

示例:

1000

ng-change="changeFunc(canPassParams)"是ms的时间。 1000 = 1秒

然后您将构建您的更改函数并将调用添加到输入中,如下所示:<T extends Comparable<? super T>>

没有更多信息,这是我可以提供的建议的范围。希望你找到解决方案。