我想在渲染我的主干视图之前传递一个额外的变量(用户 ID)。我通过 ajax 请求获得了额外的变量,但因为是异步的,我认为我的页面在获得变量之前就被渲染了。为简单起见,假设我在主干视图中有这个:
PostsApp.Views.Post = Backbone.View.extend({
template: _.template($('#post-template').html()),
render: function(){
var newObject = this.model.toJSON();
$.ajax({
url:"/user",
success:function(result){
newObject.twittername = result.name; ;
}
});
this.$el.html(this.template(newObject));
}
});
我想我可以把 this.$el.html(this.template(newObject)); 在回调中,但“this”指的是别的东西。任何人都可以想到解决这个问题吗?
还是在渲染函数中发送这样的请求是完全非常糟糕的..