因此,在获取模型并尝试将其渲染到下面此视图中的模板后,我遇到了问题。我四处搜索,发现我必须做一个_.bindAll
等,但它仍然不起作用。在我试图获取用户名的第一个 console.log 中,它返回未定义。我尝试将this.render()
(由于 fetch 的异步性质)放入成功回调中,但没有奏效。当我检查console.log(data)
产量时,我确实看到了我想要的值,但似乎没有任何东西被传递给模板。
define([
'jquery',
'underscore',
'backbone',
'models/UserModel',
'text!/assets/templates/dashboard.html'
], function($, _, Backbone, UserModel, dashboardTemplate) {
window.DashboardView = Backbone.View.extend({
el: $(".content"),
initialize: function() {
_.bindAll(this, 'render');
this.user = new UserModel();
this.user.fetch({
success: console.log(this.user.get("name")),
error: function(model, response) {
console.log("error fetching model");
console.log(model);
console.log(response);
}
});
},
render: function() {
console.log(this);
var data = {
user: this.user,
_: _
};
console.log(data);
var compiledTemplate = _.template(dashboardTemplate, data);
$(this.el).html(compiledTemplate);
}
});
return DashboardView;
});
有人可以解释一下吗?