html 自定义formControl输入组件。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 自定义formControl输入组件。相关的知识,希望对你有一定的参考价值。
import { Component, OnInit, forwardRef, Input, ElementRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
declare var jQuery: any;
import '../../../assets/semantic/semantic.min.js';
@Component({
selector: 'app-vehicle-select',
templateUrl: './vehicle-select.component.html',
styleUrls: ['./vehicle-select.component.css'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => VehicleSelectComponent),
multi: true
}
]
})
export class VehicleSelectComponent implements ControlValueAccessor {
@Input() value;
propagateChange = (_: any) => { };
constructor(private elRef: ElementRef) { }
ngOnInit() {
console.log('filter init');
jQuery(this.elRef.nativeElement).find('#vehicle-filter').dropdown({ placeholder: 'value' });
}
writeValue(value: any): void {
if (value !== undefined) {
// If a value is provided to the Component
if (this.value && String(this.value).length) { // Is Not an Empty String
this.value = value;
}
}
}
registerOnChange(fn: any): void {
this.propagateChange = fn;
}
registerOnTouched(fn: any): void {
}
setDisabledState?(isDisabled: boolean): void {
}
onChange(value) {
this.propagateChange(value);
}
}
<select class="ui dropdown" id="vehicle-filter" [(ngModel)]="value" (change)="onChange($event.target.value)">
<option value="" selected>Tous</option>
<option value="Frigorifique">Frigorifique</option>
<option value="Taut Liner">Taut Liner</option>
</select>
以上是关于html 自定义formControl输入组件。的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 Angular 组件中访问 FormControl
输入输入时 FormControl 不更新
如何从 Angular2 FormControl 对象中获取输入字段的名称?
Material-UI TextField 上下文脏
角 10 |动态组件中的FormControl
在新的 Angular 2 表单中将 NgModel 绑定到 FormControl