是否可以将自定义onChange函数添加到Angular2中的默认FormControl?

时间:2016-12-05 21:24:15

标签: angular

是否可以将自定义onChange函数添加到默认的FormControl?目前,我已经看到了在自定义输入上注册onchange函数的示例,但在默认的FormControl上没有注册。

2 个答案:

答案 0 :(得分:0)

可以绑定FormControls的更改事件。对于input框,您需要绑定到input事件,对于dropdown框,您需要绑定到change事件。

<form [formGroup]="form">
    <input  formControlName="inputControl"
          (input)="inputChange()"
          placeholder="Enter a Value"/>
    <select formControlName="dropdownControl"
            (change)="dropdownChange()">
        <option>Beetle</option>
        <option>Lady Bug</option>
        <option>Grasshopper</option>
        <option>Firefly</option>
    </select>
</form>

这是一个Plunkr,展示了事件的运作方式。

答案 1 :(得分:0)

我想补充一点,您可以使用FormControl.registerOnChange在任何FormControl上注册一个更改事件:

import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';

@Component({
    selector: 'app-foo',
    templateUrl: './foo.component.html',
    styleUrls: ['./foo.component.scss']
})
export class Foo implements OnInit {
    public Bar = new FormControl('');

    constructor () {}
    ngOnInit() {
        this.Bar.registerOnChange(()=>{console.log(this.Bar.value);});
    }
}

这将适用于与触发FormControl事件的onChange绑定的任何事物。