2013-06-09 2 views
1

Я хочу создать поведение Model-View в backbone.js, чтобы не вся информация загружалась в начале. Например, у меня есть игрок инфокоммуникационных в модели игрока:Магистраль: выбор информации по модели по запросу

var Player = Backbone.Model.extend({ 
    initialize: function() { 
     }, 
    defaults: { 
     name: "", 
     surname: "", 
     someOtherInfo: ... 
    } 
}); 

Я хочу, чтобы показать список игроков в таблице, где будет показано только имя игрока и фамилия, однако, если пользователь нажмет на проигрыватель, детальнее информация будет отображаться путем выбора других атрибутов (someOtherInfo).

Есть ли способ сделать это при вызове fetch?

+0

Почему бы не контролировать его в части «Просмотр»? Заполните модель всеми данными и покажите только то, что вы хотите с помощью 'model.get'? – LotusH

+0

@LotusH Будет слишком много данных, я хочу, чтобы загрузка на сервере была как можно меньше – maximus

+0

Тогда вам нужно сотрудничать со стороной сервера. Добавление параметра в ajax-запрос является хорошей идеей, например. '? fields = [name, suname]' и использовать 'fetch ({data: {fields: [name, surname]}})' – LotusH

ответ

4

Ваши методы API, возвращающие список/коллекцию, могут возвращать разные данные, чем метод API для извлечения определенной модели. Просто заполните коллекцию только данными, необходимыми для списка, и когда выбран элемент, выберите эту конкретную модель, чтобы заполнить пробелы.

+0

Извините, что вы имеете в виду? Мне нужны данные с сервера для заполнения модели. Но не все сразу. Я не могу заполнить его без запроса на сервер – maximus

+0

Я имею в виду, что запрос 'GET/players' (from collection.fetch()), используемый для заполнения коллекции, может возвращать только (id, name, surname), например. '[{id: 1, name:" first ", surname:" last "}, {id: 2, name:" some ", surname:" other "}, ...]' для каждого объекта в списке, тогда как запрос 'GET/players/1' (from model.fetch()) должен возвращать все (id, name, surname, someOtherInfo) –

Смежные вопросы