Я пытаюсь использовать две модели в одном представлении и, следовательно, в шаблоне, но после попытки использовать примеры, показанные в этом вопросе: Backbone.js: сложные представления, объединяющие несколько моделей Я сталкиваюсь с некоторыми ошибками.
Сначала, если я попытаюсь использовать модель представления для объединения обеих моделей, как показано ниже:
var model = new Backbone.Model();
model.set({ image: image, person: person });
var view = new Project.Views.Images.ShowView({ model: model });
Я не могу получить доступ к чему-либо в шаблоне, каждое поле либо пустое, либо некоторые из них являются строковым представлением функции. Вот мой шаблон:
<img width="<%= image.width %>" height="<%= image.height %>" alt="<%= image.message %>" src="<%= image.url %>" />
<p><%= image.message %></p>
<h4>by <%= person.name %></h4>
Вот что выдает этот шаблон:
<img width="" height="" alt="" src="function () {
var base = getUrl(this.collection) || this.urlRoot || urlError();
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id);
}">
<p></p>
<h4>by </h4>
Я проверил, что и изображение, и преследователь являются допустимыми моделями, и если я передам только одну из них в представление, оно отлично работает и привязывает эту модель к этому представлению.
Я также пробовал другой подход:
var view = new Project.Views.Images.ShowView({ model: image, person: person });
Тогда шаблон выглядит так:
<img width="<%= width %>" height="<%= height %>" alt="<%= message %>" src="<%= url %>" />
<p><%= message %></p>
<h4>by <%= person.name %></h4>
Однако это вызывает ошибку javascript, в которой говорится, что человек не определен, и если я удалю имя человека из шаблона, остальные отображаются правильно.
Что я делаю неправильно и правильны ли эти подходы?