我正在学习主干/下划线,我发现我越是脱离教程中真正基本的东西,就越意识到教程并没有教给我太多东西。
我目前的问题是将变量传递给视图。我有三个不同的模板可用,但它们都呈现相同的,所以我希望在从集合中呈现它时将要使用的模板传递到视图中。我认为可行的只是在视图调用中添加一个属性,然后使用 this.options.Property 访问它,但这会引发属性未定义的错误。
我尝试了许多变体选项,但似乎没有任何效果。我究竟做错了什么?
谢谢是提前。
var ProjectListView = Backbone.View.extend({
el: '#projectList',
initialize: function() {
this.collection = masterProjectList;
this.render();
},
render: function() {
this.$el.html("");
this.collection.each(function(project) {
this.renderItem(project);
}, this);
},
renderItem: function(project) {
var projectView = new ProjectView({model: project, projectType: '#theatricalProjectTemplate' });
// Passing in the project type, which determines which template gets used
this.$el.append(projectView.render().el);
}
});
var ProjectView = Backbone.View.extend({
tagName: "div",
className: "project-wrap",
template: _.template($(this.options.projectType).html()),
// use this.options to access the value
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});