Рекомендации KnockoutJS для заполнения моделей с несколькими представлениями с использованием Ajax - PullRequest
4 голосов
/ 01 апреля 2012

Мне было интересно, есть ли у кого-нибудь рекомендации по заполнению нескольких моделей просмотра на экране.У меня есть:

a) модель представления, имеющая список задач

b) модель представления, имеющая список пользователей

Я заполняю их в 2 xajax success (отдельные вызовы ajax) что-то вроде:

success: function (data) {
    masterVM.User = ko.mapping.fromJS(data, mapping);
    ko.applyBindings(masterVM); 
}

/* another ajax call: */
success: function (data) {
    masterVM.Task = ko.mapping.fromJS(data, mapping);
    ko.applyBindings(masterVM); 
}

И в настоящее время вызов в каждом успешном вызове ajax.

Надеюсь, мой вопрос ясен и лаконичен.Пожалуйста, попросите дополнительную информацию, если требуется.

С уважением, Фил

Ответы [ 2 ]

4 голосов
/ 01 апреля 2012

В настоящее время мы обрабатываем это, отправляя все данные на нашу страницу в одном вызове Ajax, затем применяя ko.mapping для сопоставления данных с моделями представления в нашей основной модели представления.

Мы начали с того, что сделали два вызова, как и вы, но решили, что было бы лучше уменьшить количество запросов http, поэтому мы объединили наборы данных в единую иерархическую структуру объектов, и она прекрасно работает.

Этот вопрос и последующий ответ содержат фрагмент подхода, который мы используем: Сопоставить данные JSON с Knockout observableArray с конкретным типом модели представления

3 голосов
/ 01 апреля 2012

Пока вы не замечаете проблемы с производительностью, я рекомендую делать отдельные звонки, потому что это будет держать ваши службы слабо связаны с вашими потребностями презентации.

Однако, если это проблема перфорации, вы можете заставить свой веб-сервис объединять данные и возвращать их за один раз. Но вы теряете немного ремонтопригодности.

...