1
我在ViewModel中有3个observableArrays;自定义组件的构造函数中的参数总是未定义
groupedCustomFields: ko.ObservableArray<any> = ko.observableArray([]);
customFieldsForAdvSearch: ko.ObservableArray<any> = ko.observableArray([]);
countries: ko.ObservableArray<Country> = ko.observableArray([]);
在视图模型的构造我初始化他们的数据来自一些API请求
constructor() {
//some other operations
this.loadCustomFields();
this.loadCountries();
}
private loadCustomFieldsForAdvSearch() {
dataService.Management.getCustomFields()
.done(response => {
this.groupedCustomFields(sortBy(new CustomFieldsService().getGroupedFields(response.collection), i => i.displayOrder));
this.customFieldsForAdvSearch(response.collection
.filter(l => defaultFields.indexOf(l.name) === -1)
.map(l => {
return {
fieldName: l.name,
displayName: l.display,
displayOrder: l.order,
value: ''
};
})
.sort((x, y) => x.displayOrder - y.displayOrder));
});
}
private loadCountries() {
dataService.Management.getCountriesWithStates()
.done(countries => {
this.countries(countries);
});
}
这observableArrays我传递给我的自定义组件:
<component1 params="{
customFields: customFieldsForAdvSearch,
groupedCustomFields: groupedCustomFields,
countries: countries
}">
</component1>
问题:在component1
groupedCustomFields
构造即使customFields
和countries
没有问题,也总是未定义。
constructor(params: any) {
this.customFields = params.customFields;
this.groupedCustomFields = params.groupedCustomFields;//undefined
this.countries = params.countries;
}
为什么会发生这种情况?我该如何解决它?
看着代码和标签,我们可以假设这是关于淘汰赛权的问题? –
@ R.DarioDuarte,是的,我已经添加了标签:)或更好地添加它的问题? – demo
嗨@demo我刚刚看到你的组件1调用中缺少一个逗号,紧跟在customFields之后,我刚刚编辑了你的问题,但它可能与你未定义的问题有关,请检查是否添加该逗号有助于 –