Я получаю данные модели с моего сервера, как это в моем магистральном приложении,
var projectModel = new App.Models.Project({ id: 1001 });
projectModel.fetch();
Выборка работает, и я получаю данные с сервера, но данные не в том формате, который я ожидал, проект - это модель, которая содержит другие модели и коллекции, однако то, что возвращается с сервера и в модель, выглядит так:
{
project_name: "A Test Project"
project_managers: Array[5],
workers: Array[10]
}
Это означает, что каждый раз, когда я делаю выборку для проекта, я должен установить каждый атрибут, который должен быть моделью или коллекцией, подобной этой,
projectModel.set('workers', new App.Collections.Users(projectModel.get('workers')));
В моей модели у меня есть функция инициализации, в которой я делаю все эти настройки, но, похоже, это игнорируется при выборке.
Конечно, есть лучший способ установить мои атрибуты для выборки, чем проходить их по отдельности?
Если переопределить метод синтаксического анализа в модели, например,
parse: function(response, options) {
this.set('workers', new App.Collections.Users(response.workers));
}
Это действительно возвращает работников как коллекцию в модели проекта, но игнорирует отдельные атрибуты, такие как имя, поэтому я ожидаю, что это будет возвращено,
{
name : Test Project,
workers : s //this is how console.log outputs it
},
но все, что я получаю обратно,
{
workers : s //this is how console.log outputs it
}
почему это?