Angular 在更新所有被动窗体的值后,将在输入时调用什么事件
在反应形式的特定输入更改后,角度(v.5或v.6)中发出事件的正确方式是什么 我已经试过这种方法了:Angular 在更新所有被动窗体的值后,将在输入时调用什么事件,angular,typescript,events,angular-reactive-forms,ngx-bootstrap,Angular,Typescript,Events,Angular Reactive Forms,Ngx Bootstrap,在反应形式的特定输入更改后,角度(v.5或v.6)中发出事件的正确方式是什么 我已经试过这种方法了: (ngModelChange)=“doSomething($event)”(html,基本事件) (bsValueChange)=“doSomething($event)”(html、ngx引导特定事件) 一次输入的基本反应式表单解决方案-订阅事件(ts),如: this.reactiveForm.get('inputName').valueChanges.subscribe( value=>{
(ngModelChange)=“doSomething($event)”
(html,基本事件)(bsValueChange)=“doSomething($event)”
(html、ngx引导特定事件)this.reactiveForm.get('inputName').valueChanges.subscribe(
value=>{this.doSomething(value);}
);
但在所有情况下都不起作用
测试:
A
B
方法中的所有doSomething()
项都具有当前值reactiveForm.value
A
,然后选择日期B
,我的“doSomething”
以反应式形式记录字段的实际日期(以及$event的值)后,返回A
作为实际字段值。演示工作正常,但我不知道为什么我不能在我的项目中实现这样的行为
方法2。根本不工作。这是ngx引导的特定事件,但在我选择日期B
之后,我再次在日志中获取日期A
方法3。根本不工作。这是纯反应型溶液。您可以在最后一次输入时对其进行测试。如果您先键入A
,然后键入B
,则从reactiveForm登录。键入B
后,值['item']
。所以,即使您订阅了reactiveForm输入的valueChanges
事件,值也不会更改
我的问题是:更新此被动表单值后,我可以使用什么来捕获一个被动表单字段的事件 这是
PS:首先,我认为这是ngx引导扩展的问题,但它也不适用于纯反应形式的输入。Atiris,答案是:3 但你看这是不同的
this.reactiveForm.value['testDateE'] //or this.reactiveForm.value.testDateE
原因是,如果要检查html中的某些内容,必须使用第二种方法。当我们发送submit时,我们提交了reactiveForm.value,没有问题,同样,如果您编写{{reactiveForm.value | json},您将看到实际值谢谢,看起来不错。我用
.get(ITEM).value
更新了我的演示,对于单独的项目它看起来还可以。如果我想在输入发生任何变化后提交整个表单呢?我显然不能使用this.reactiveForm.value
,因为它包含旧值(添加到演示中)。在测试之后,我发现我可以使用this.reactiveForm.getRawValue()
(其中包含实际版本的值)插入this.reactiveForm.value的中间部分。。。您是否有任何指向文档的链接,我可以在其中找到有关.value
和.getRawValue()
之间差异的更多信息,以及在哪些情况下可以使用这两个属性之一?您可以使用this.reactiveForm.value发送值。常见的方法是使用和submit(form){if(form.valid){console.log(form.value)//
this.reactiveForm.get('testDateE').value;