1

我正在使用角度反应形式为嵌套对象数组构建一个形式。我能够绘制表单并且它按预期工作,但在一种情况下,我希望能够使用当前在 UI 中输入的值填充某个输入框

我想要的是? 下面是我的用户界面,你可以看到我有一组属性。我想要的是当用户输入一个propertyName时。我希望能够将其添加为数组并显示 messageId 字段的下拉列表(它是一个多选剑道组件)

在此处输入图像描述

我有的?

为了收听 propertyName 的变化,我使用了 angular forms 已经为每个 FormControl 提供的 Observable 并编写了以下代码

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

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

但是每次按键而不是 onblur 都会触发 valueChanges 事件。因此,如果用户输入 Apple 作为属性名称。我的列表中将包含(A, AP, APP...)在此处输入图像描述

Question 如何订阅FormControl输入框的onblur事件?基本上我正在寻找像propertyNameControl.onFocusOut.forEach()这样的东西

4

1 回答 1

1

似乎您可以为控件设置一个选项来更新 onblur而不是 on change

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

或用于模板驱动的表单

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

或用于单个输入元素

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

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

于 2017-08-29T09:51:23.583 回答