Backbone.js 主干+把手:模板未获取数据
我将数据从主干视图发送到把手模板js FIDLE:如下所示:Backbone.js 主干+把手:模板未获取数据,backbone.js,handlebars.js,Backbone.js,Handlebars.js,我将数据从主干视图发送到把手模板js FIDLE:如下所示: this.$el.html(this.template({ users: that.users.toJSON(), audiences: that.audiences.toJSON() })); <select name="user" class = "form-control"> {{#each users}} <option value="{{name}}">{{n
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
<select name="user" class = "form-control">
{{#each users}}
<option value="{{name}}">{{name}}</option>
{{/each}}
</select>
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
我试图访问用户和观众列表,如下所示:
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
<select name="user" class = "form-control">
{{#each users}}
<option value="{{name}}">{{name}}</option>
{{/each}}
</select>
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
但是用户和观众的下拉菜单是空的。我在这里做错了什么?您的问题是您正在传递模型,这些模型不会直接公开它们的属性。试着这样做:
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
<select name="user" class = "form-control">
{{#each users}}
<option value="{{name}}">{{name}}</option>
{{/each}}
</select>
this.$el.html(this.template({
users: that.users.toJSON(),
audiences: that.audiences.toJSON()
}));
更新:
没有一把完整的小提琴,你很难看出哪里出了错。这是一把小提琴:
HTML:
将集合回迁从视图的initialize方法移动到路由处理程序解决了该问题 说得好!你真的要将模板存储在一个容器中吗?@muistooshort-是的,这不是一个好的做法吗?模板很少是有效的HTML,它们只是看起来像HTML的文本,所以你应该将它们存储在容器中,以防浏览器插手。哇,很高兴知道。谢谢@muistooshort!我用了一个更全面的例子更新了我的答案