Как насчет того, чтобы переупорядочить/сплющить вашу модель, чтобы сделать id свойством верхнего уровня? Override разобрана и вам не нужно будет установить idAttribute:
var YourModel = Backbone.Model.extend({
parse: function (response) {
var distance = response.distance;
response = response.widget;
response.distance = distance;
return response;
}
});
Теперь идентификатор будет автоматически подобран Backbone в качестве идентификатора. Если вам нужно сохранить данные обратно в хранилище данных, вам нужно будет перезаписать методы, необходимые для преобразования данных. Если возможно, это было бы лучшим решением, если бы ваша модель была построена с идентификатором уже на верхнем уровне.
У меня нет никаких заявлений о том, как я получаю данные, поэтому, хотя я хотел бы получить данные с идентификатором как атрибутом верхнего уровня, это просто не возможно. Какая производительность могла бы перестроить данные таким образом? – 2013-03-10 01:00:17
Всё зависит от меня. Вы трансформируете очень большие количества этих моделей и как часто? – kinakuta