Я пытаюсь использовать две модели в одном представлении и, следовательно, в шаблоне, но после попытки примеров, показанных в этом вопросе: 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, говорящей о том, что персона не определена, и если я удаляю person.name из шаблона, все остальное будет отображаться правильно.
Что я делаю не так, и подходят ли эти подходы?