Javascript Backbone.js视图渲染错误
如果我这样做-每件事都很好-Javascript Backbone.js视图渲染错误,javascript,backbone.js,viewrendering,Javascript,Backbone.js,Viewrendering,如果我这样做-每件事都很好- var UserList = Backbone.View.extend({ el: '.page', render: function(){ var users = new Users(); users.fetch({ success: function() { console.log('success');
var UserList = Backbone.View.extend({
el: '.page',
render: function(){
var users = new Users();
users.fetch({
success: function() {
console.log('success');
}
})
this.$el.html('test');
}
});
但是当我插入this.$el.html('test')代码>进入成功回调时,我收到一个错误:
TypeError:“undefined”不是对象(正在计算“this.$el.html”)
控制台日志被正确触发。在success
中,上下文已更改,因此此
不再引用视图对象(我相信它实际上引用了JQuery Ajax对象)。要解决此问题,您可以使用var self=this
保存对视图的引用:
var users = new Users();
var self = this;
users.fetch({
success: function() {
console.log('success');
self.$el.html('test');
}
})
var users = new Users();
var self = this;
users.fetch({
success: function() {
console.log('success');
self.$el.html('test');
}
})