主干模型未定义?
我不明白为什么当我运行 this.model.fetch() 时 this.model 会在 view.intialize() 中定义,而不是在 view.render() 中定义。
define([
'jquery',
'underscore',
'backbone',
'text!templates/example.html'
], function($, _, Backbone, exampleTemplate){
var exampleView = Backbone.View.extend({
el: $('body'),
initialize: function() {
this.model.set({ _id: this.options.user_id });
this.model.fetch({
success: this.render,
error: function(model, response) {
console.log('ERROR FETCHING MODEL');
console.log(model);
console.log(response);
}
});
},
render: function() {
console.log('HELLO FROM RENDER');
console.log(this.model);
console.log('GOODBYE FROM RENDER');
}
});
return exampleView;
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为
this
的绑定方式不同,因为 render 被用作回调,请将以下行作为initialize
方法中的第一行来绑定this
到渲染方法的当前视图:Underscore.js bindAll 函数
It is because the
this
is being bound differently because render is being used as a callback, put the following line as the first line in yourinitialize
method to bindthis
to the current view for the render method:Underscore.js bindAll function