У меня есть 3 наблюдаемых массива в ViewModel;Параметр в конструкторе пользовательского компонента всегда не определен
groupedCustomFields: ko.ObservableArray<any> = ko.observableArray([]);
customFieldsForAdvSearch: ko.ObservableArray<any> = ko.observableArray([]);
countries: ko.ObservableArray<Country> = ko.observableArray([]);
В конструкторе ViewModel я инициализируюсь их с данными из некоторого 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
Hey @demo Я просто заметил, что вам не хватает запятой на вашем вызове component1, сразу после customFields, я только что отредактировал ваш вопрос, но это может быть связано с вашей неопределенной проблемой, пожалуйста, проверьте, добавляет ли это запятая –