2017-08-29 48 views
1

我正在使用角反应形式为嵌套对象数组构建表单。我能够绘制表单并且按预期工作,但是在一种情况下,我希望能够使用在UI中输入的值填充某个输入框。如何知道用户何时完成以角度形式输入元素

我想要什么? 下面是我的用户界面,你可以看到我有一个属性数组。我想要的是当用户输入一个propertyName时。我希望能够补充说,作为一个数组,并显示该MessageID字段下拉(它是一个多选剑道组件)

enter image description here

我有什么?

要收听propertyName的变化我已经使用了可观察该角的形式已经为每个FormControl并写下了下面的代码

var propertyNameControl: FormControl = new FormControl('', Validators.required); 

    propertyNameControl.valueChanges.forEach(
     (value: string) => { 
     console.log(value); 
     this.propertyList.push(value) 
     } 
    ); 

但valueChanges事件得到触发每一个按键代替的onblur。因此,如果用户输入苹果作为属性名称。我将在我的列表中有(A,AP,APP ...)enter image description here

问题 我如何订阅的onblur的FormControl的输入框的事件?基本上我寻找类似propertyNameControl.onFocusOut.forEach()

+1

'onblur'事件不过是'touched'事件,当控制模糊它被激发。 –

+0

是@RahulSingh。我想我的FormControl钩入该事件 – Umamaheswaran

+0

@gunter给出了值得研究的答案 –

回答

1

看来你可以设置一个选项,控制对blur,而不是在change更新:

const control = new FormControl('', {validators: Validators.required, updateOn: 'blur'}); 

或模板 - 驱动表单

<form [ngFormOptions]="{updateOn: 'blur'}"> 

或单个输入元件

<input [(ngModel)]="firstName" [ngModelOptions]="{updateOn: 'blur'}"> 

我刚才看到,这似乎是角5只(https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta4-2017-08-16https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta3-2017-08-09

+0

我希望我们在角度4( – Umamaheswaran

+0

)中看到类似的东西。也许你可以在解决方法中生活,直到你能够迁移到角5。 –

相关问题