更新反应形式的所有值后,将在输入上调用什么事件
What event will be called on input AFTER all values of reactive forms are updated
Angular(v.5 或 v.6)在 反应形式的特定输入更改后发出事件的正确方法是什么?
这个方法我已经试过了:
(ngModelChange)="doSomething($event)"
(html,基本事件)
(bsValueChange)="doSomething($event)"
(html, ngx-bootstrap 具体事件)
一个输入的基本反应形式解决方案 - 订阅事件 (ts) 如:
this.reactiveForm.get('inputName').valueChanges.subscribe(
value => { this.doSomething(value); }
);
但在所有情况下都不起作用。
测试:
设置输入值A
将输入值更改为 B
预期行为:
doSomething()
方法中的所有 reactiveForm.value
项都有 当前值。
结果:
方法 1。无法在演示中模拟此错误。这在 my demo 中有效,但在我的大型项目中无效。在我设置第一个日期 A
然后 select 日期 B
之后,我的 "doSomething"
以反应形式 [=114= 记录字段的实际日期(和 $event 的值) ] A
为实际字段值。演示工作正常,但我不知道为什么我无法在我的项目中实现这种行为。
方法 2。根本不工作。这是 ngx-bootstrap 的特定事件,但在 select 日期 B
之后,我再次在日志中获取日期 A
。
方法 3。根本不工作。这是纯反应形式的解决方案。您可以在最后一个输入的 my demo 上测试它。如果您输入 A
,然后输入 B
,则从 reactiveForm.value['item']
登录,在您输入 B
之后,只有 A
。所以即使你订阅了 valueChanges
reactiveForm 输入的事件,值也不会改变。
我的问题是:
在更新此反应形式值后,我可以使用什么来捕获一个反应形式字段的事件?
这里是StackBlitz code DEMO with example
PS: 首先我以为是 ngx-bootstrap
extension 的问题,但是对于 reactive form 的纯输入也不行.
Atiris,答案是:3。
但看到那是不同的
this.reactiveForm.value['testDateE'] //or this.reactiveForm.value.testDateE
比
this.reactiveForm.get('testDateE').value;
是因为如果你想检查一些在html你必须使用第二种方式。当我们发送提交时,我们提交了 reactiveForm.value 并且没有问题,同样如果你写 {{reactiveForm.value |json}} 你会看到实际值
Angular(v.5 或 v.6)在 反应形式的特定输入更改后发出事件的正确方法是什么?
这个方法我已经试过了:
(ngModelChange)="doSomething($event)"
(html,基本事件)(bsValueChange)="doSomething($event)"
(html, ngx-bootstrap 具体事件)一个输入的基本反应形式解决方案 - 订阅事件 (ts) 如:
this.reactiveForm.get('inputName').valueChanges.subscribe(
value => { this.doSomething(value); }
);
但在所有情况下都不起作用。
测试:
设置输入值
A
将输入值更改为
B
预期行为:
doSomething()
方法中的所有reactiveForm.value
项都有 当前值。
结果:
方法 1。无法在演示中模拟此错误。这在 my demo 中有效,但在我的大型项目中无效。在我设置第一个日期 A
然后 select 日期 B
之后,我的 "doSomething"
以反应形式 [=114= 记录字段的实际日期(和 $event 的值) ] A
为实际字段值。演示工作正常,但我不知道为什么我无法在我的项目中实现这种行为。
方法 2。根本不工作。这是 ngx-bootstrap 的特定事件,但在 select 日期 B
之后,我再次在日志中获取日期 A
。
方法 3。根本不工作。这是纯反应形式的解决方案。您可以在最后一个输入的 my demo 上测试它。如果您输入 A
,然后输入 B
,则从 reactiveForm.value['item']
登录,在您输入 B
之后,只有 A
。所以即使你订阅了 valueChanges
reactiveForm 输入的事件,值也不会改变。
我的问题是:
在更新此反应形式值后,我可以使用什么来捕获一个反应形式字段的事件?
这里是StackBlitz code DEMO with example
PS: 首先我以为是 ngx-bootstrap
extension 的问题,但是对于 reactive form 的纯输入也不行.
Atiris,答案是:3。
但看到那是不同的
this.reactiveForm.value['testDateE'] //or this.reactiveForm.value.testDateE
比
this.reactiveForm.get('testDateE').value;
是因为如果你想检查一些在html你必须使用第二种方式。当我们发送提交时,我们提交了 reactiveForm.value 并且没有问题,同样如果你写 {{reactiveForm.value |json}} 你会看到实际值