作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这个:
<input formControlName="someName" (click)="onClick()">
onClick
函数是通用的并设置相应的值
FormControl
(我点击的那个)。
FormControl
作为
onClick
的参数?
control
中检索它
FormControlDirective 的属性(property)或
FormControlName但他们都没有
exportAs
属性。
最佳答案
我认为这是您想要实现的目标。
import { Directive, HostListener, Optional, Output, EventEmitter } from '@angular/core';
import { NgControl, FormControl } from '@angular/forms';
@Directive({
selector: '[appOnClickControl]' // if you want to target specific form control then use custom selector else you use can use input:
// selector: 'input' to target all input elements
})
export class TestDirective {
@Output() emitFormControl = new EventEmitter<FormControl>();
constructor(@Optional() private formControl: NgControl) {
}
/**
* If your only goal is to set value to the form control then use this
*/
@HostListener('click')
onClick() {
if (this.formControl) {
this.formControl.control.setValue('test');
}
}
/**
* If you wanna pass the form control through the function you might use this
*/
@HostListener('click')
getFormControl(): void {
this.emitFormControl.emit(this.formControl.control as FormControl);
}
}
<input
appOnClickControl // use this to initialize directive
(emitFormControl)="yourMethod($event)" // $event is the clicked form control
formControlName="test"
></input>
关于javascript - 如何将 FormControl 从模板传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60745797/
我是一名优秀的程序员,十分优秀!