這是我爲骨幹Backbone.js的渲染視圖
var RepoListView = Backbone.View.extend({
el: $('#wrapper'),
events: {
"click #more_repos" : "get_more_repos"
},
get_more_repos: function() {
ajax(get_repo_url, {offset:2}, this.render);
},
render: function(result) {
var template = Handlebars.compile($("#repos_hb").html());
$(this.el).find('#main_content').append(template({repos: result}));
return this;
}
});
視圖,這是會從「get_more_repos」函數調用
function ajax(url, data, post_ajax_function) {
$.ajax({
url: url,
data: data,
dataType: 'json',
success: function(result){
post_ajax_function(result);
}
});
}
但是我的AJAX功能,不渲染,因爲「this.el」未定義。現在玩了一段時間後,它看起來像「ajax(..)」函數中的回調無法訪問「this.el」。任何想法如何解決這個問題?
「this.el」未定義的原因是因爲我錯過了「_.bindAll(this,render)」。就像手冊說的那樣。 – ericbae