我有很多选择框,每个框都有browse_select
类。我想在这些选择框中的任何选项被更改时触发render
函数,但它没有触发此函数。
$(function(){
var Users = Backbone.Collection.extend({
url: "/app/phpscripts/services/browse_users/?"
});
var UserView = Backbone.View.extend({
el: '.list_ctn ul',
tagName: 'li',
events: {
"change .browse_select" : "render"
},
render: function(){
console.log("render");
var users = new Users();
var that = this;
users.fetch({
success: function(){
var template = _.template($('#myUserTemp').html(),{users: users.models});
that.$el.html(template);
}
});
}
});
var userView = new UserView();
userView.render();
});
答案 0 :(得分:0)
仔细检查选择框是否在#myUserTemp。
此外,您可能希望将user.fetch逻辑放在该视图之外。由于它是回调的一部分,我不确定是否可以因为你的流程而正确设置事件监听器。
我建议您从视图外部调用fetch,然后在获取成功时启动新的UserView并传递集合。这允许您以标准方式设置_.template(),作为视图属性。