Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干+把手:模板未获取数据_Backbone.js_Handlebars.js - Fatal编程技术网

Backbone.js 主干+把手:模板未获取数据

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

我将数据从主干视图发送到把手模板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}}">{{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!我用了一个更全面的例子更新了我的答案