$ watch输入文本返回undefined

问题描述 投票:-1回答:1

我想在输入文本中使用$ 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);
angularjs watch
1个回答
0
投票

了解$ watch

$scope.$watch('scopeVariable', function() {
    alert('scopeVariable has changed');
});

上面的监视功能需要一个范围变量scopeVariable并监视它的任何变化。

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

没有完整的代码图片,我可以在这里尽可能多地提供帮助。

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

Angular的ng-change在每次变化后开火。您可以利用debounce来区分变化事件,直到设定的持续时间。这将允许您暂停事件触发,直到说某人通常会完成输入。

将以下内容作为附加属性添加到input元素中。另外,确保您的输入通过ng-model="yourScopeVariable"绑定到Angular变量

例:

ng-model-options="{ debounce: 1000 }"

1000是ms的时间。 1000 = 1秒。

然后,您将构建您的更改函数并将调用添加到输入中,如下所示:ng-change="changeFunc(canPassParams)"

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

© www.soinside.com 2019 - 2024. All rights reserved.