Я создал нокаутирующий компонент, как расслоение плотной следующим образом:объект Карта данных для просмотра функции модели с использованием ko.mapping.fromJS
define(['knockout', 'text!./details.html'], function(ko, htmlString) {
function detailsViewModel(params) {
var response = getDummyResponse();
// how to extend the view model with ko.mapping.fromJS()?
}
function getDummyResponse(){
return {
foo: 1,
bar: 2
};
}
return { viewModel: detailsViewModel, template: htmlString };
});
Возвращенный вид модель должна быть функция-конструктор для того, чтобы быть действительным нокаута компонент.
Предположим, что getDummyResponse()
возвращает большой объект, который я хочу расширить моделью просмотра, используя ko.mapping.fromJS
для отображения данных.
Как бы я это сделал?
Последующий вопрос: Как обрабатывать async-загрузку в createViewModel? Например. сделав ajax-вызов для загрузки модели, а затем вернув ее – filur
Возможно, вам следует опубликовать следующий вопрос, покажите нам, что у вас есть, и какова конкретная проблема. Легче помочь вам таким образом с последующими вопросами, а не комментариями. – Jeroen
(По прихоти, вы можете либо (а) убедиться, что внешняя модель просмотра так, что компонент не будет создан даже до тех пор, пока данные не будут готовы, или (б) вы начнете с модели «бланко» и при загрузке он сам загружается. - Но опять же, нам нужно увидеть ваш текущий код в новом вопросе, чтобы действительно помочь.) – Jeroen