如何将多个动作绑定到单个 Angular 输出?

问题描述

如何在不创建任何其他方法的情况下将多个操作绑定到单个 Angular 输出

一个示例是根据自定义组件的输出更新 formControl 的值,并将该 formControl 标记为脏。

解决方法

您可以将 array 绑定到 HTML 模板中的输出,这使您能够触发多个操作:

模板:

<ul>
    <li style="cursor:pointer" 
        *ngFor="let value of values"
        (click)="[myFormControl.setValue(value),myFormControl.markAsDirty()]">{{value}}
    </li>
</ul>
<ul>
    <li>Form Control Value: {{myFormControl.value}}</li>
    <li>Form Control Dirty: {{myFormControl.dirty}}</li>
</ul>
<button (click)="myFormControl.reset()">Reset Form Control</button>

组件:

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

@Component({
    selector: 'my-app',templateUrl: './app.component.html',styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
    myFormControl = new FormControl(null);
    values = ['spring','summer','autumn','winter'];
}

Stackblitz example

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...