Javascript 车把选择列表
我正在尝试列出我的数据以选择的选项。我正在使用Handlebar主干jquery requireJS 这是我的模板Javascript 车把选择列表,javascript,jquery,backbone.js,handlebars.js,Javascript,Jquery,Backbone.js,Handlebars.js,我正在尝试列出我的数据以选择的选项。我正在使用Handlebar主干jquery requireJS 这是我的模板 <select id="userSelect"> <option value="" selected="selected">Kullanıcı Seçiniz</option> {{#each users}} <option value='{{userID}}'>{{username}}</option> {{/u
<select id="userSelect">
<option value="" selected="selected">Kullanıcı Seçiniz</option>
{{#each users}}
<option value='{{userID}}'>{{username}}</option>
{{/users}}
</select>
还有我的路由器.js
user: function () {
var spinner = new Spinner();
$('body').after(spinner.spin().el);
var users = new Users();
var userSelect = new UserSelectList.SelectUserList();
users.fetch({
contentType: "application/json",
error: function () {
console.log("error");
},
cache: false,
success: function (m_users) {
userSelect.users=m_users;
userSelect.render(UserSelectList.users);
disposeView(new UserSelectList.SelectUserList().render());
}
});
DisposeView函数
function disposeView(view) {
var current = this.currentView;
if (current) current.close();
current = this.currentView = view;
current.delegateEvents();
return current;
}
我有这个错误
我怎么修理?我的错在哪里?
谢谢您已将视图命名为
SelectUserList
。在您的视图中,您尝试编译SelectUserList
(这是您的视图而不是模板字符串),但您希望将其传递给您的模板。通常会有这样的东西
define(['text!templates/my_tempalte.hbs'],
function(MyTemplateHbs){
var users = new User();
var SelectUserList = Backbone.View.extend({
model: User,
el:'.page',
render:function(users)
{
var template = Handlebars.compile(MyTemplateHbs); //pass the tempalte
var html = template({users:users.toJSON()});
this.$el.html(html);
return this;
}
});
return {
users:users,
SelectUserList:SelectUserList
};
)};
由于在{{/}之后提供了不正确的帮助程序名称,因此出现错误
{{#each users}}
<option value='{{userID}}'>{{username}}</option>
{{/users}}
{{#每个用户}
{{username}}
{{/用户}
应该纠正为
{{#each users}}
<option value='{{userID}}'>{{username}}</option>
{{/each}}
{{#每个用户}
{{username}}
{{/每个}}
我编辑了这个解决方案,但是现在出现了相同的异常错误“each not match users-3:7”哦,刚才也看到,{{{each users}}需要结束{/each}而不是{{/users}}我编辑了这个语法错误,但是选择fill null。但是console.log返回我的数据。您正在选择UserList视图的渲染函数需要用户,并且在渲染期间和初始化时都不会将用户传递给视图。这就是您在select中获得任何内容的原因。
{{#each users}}
<option value='{{userID}}'>{{username}}</option>
{{/each}}