我使用ControlValueAccessor创建了一个自定义控件,该控件由一个input[type=text]和一个datepicker组成.
当我在模板驱动的表单中使用它时一切正常.但是当我使用模型驱动的方法(反应形式)时,disable()表单控件上的方法似乎没有任何效果.
是否可以以编程方式禁用/启用我的自定义控件,就像我在模型驱动的表单中使用其他每个表单控件一样
编辑
我要指出,我采用了棱角分明的v2.1.0,我的方法是几乎一样的这个,因为我一直在使用它作为指南.
编辑
这是我的自定义控件:
@Component({
selector: 'extended-datepicker',
templateUrl: './extended-datepicker.component.html',
styleUrls: ['./extended-datepicker.component.scss'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => ExtendedDatepickerComponent),
multi: true
}
]
})
export class ExtendedDatepickerComponent implements OnInit, ControlValueAccessor {
isDatepickerActive: boolean = false;
_selectedDate: Date;
selectedDateString: string = "";
@Input() disabled: boolean;
@Input() mask: any;
@Input() required: boolean;
@ViewChild('textInput') textInput: ElementRef;
get selectedDate(): Date {
return this._selectedDate;
}
set selectedDate(value: Date) {
this.selectedDateString = moment(value).format(STANDARD_DATE_FORMAT);
this._selectedDate = value; …Run Code Online (Sandbox Code Playgroud)