问题描述
我的自定义表单控件有一个“optionChanged”事件,如下所示:
@Component({
selector: 'app-formly-company-search',templateUrl: './formly-company-search.component.html',styleUrls: ['./formly-company-search.component.scss']
})
export class FormlyCompanySearchComponent extends FieldType implements OnInit {
label: string;
@Output() optionChanged = new EventEmitter<string>();
constructor() {
super();
}
ngOnInit() {
this.label = this.field.templateOptions.label;
if (this.field.templateOptions.required) {
this.label += " *";
}
}
onoptionChanged(option) {
//console.log("new option: ",option);
this.field.templateOptions.optionChanged(option);
}
}
通过在上面的 templateOptions 中调用 optionChanged,当我在 FormlyFieldsConfig 中定义控件时,我可以实现一个事件处理程序,如下所示:
this.fields = [
{
fieldGroup: [
{
key: 'EmployerKey',type: 'company-search',templateOptions: {
required: true,label: 'Employer Search',optionChanged: ($event) => {
this.setPaySchedulesForEmployer2($event);
this.setTaxYearsForEmployer($event);
}
}
},
效果很好。但我也想在一个 onInit 生命周期钩子中订阅这个事件(就像我对 valueChanges 事件所做的那样),用于另一个像这样的正式控件:
{
key: 'PayFrequency',type: 'select',templateOptions: {
label: 'Pay Frequency',valueProp: 'Key',labelProp: 'Text'
},hooks: {
onInit: (field: FormlyFieldConfig) => {
let employerControl = this.form.get("EmployerKey");
this.subs.add(employerControl.optionChanged.subscribe(result => {
this.onEmployerChanged(field);
}));
}
}
},
当然,“employerControl”FormControl 没有那个事件“optionChanged”,所以我不知道我该怎么做?谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)