[英]Backbone.js view render error
如果我这样做 - 一切都很好 -
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');
进入成功回调我收到一个错误:
类型错误:'undefined' 不是一个对象(评估 'this.$el.html')
var UserList = Backbone.View.extend({
el: '.page',
render: function(){
var users = new Users();
users.fetch({
success: function() {
console.log('success');
this.$el.html('test');
}
})
}
});
控制台日志被正确触发。
在success
内部,上下文已更改,因此this
不再指视图对象(我相信它实际上指的是 JQuery Ajax 对象)。 要解决此问题,您可以使用var self = this
保存对视图的引用:
var users = new Users();
var self = this;
users.fetch({
success: function() {
console.log('success');
self.$el.html('test');
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.