我必須在render()
函數中使用變量,但我只能將它傳遞給構造函數。我這個代碼:在將render作爲回調函數時訪問視圖屬性
app.views.CompanyView = Backbone.View.extend({
el: '#company-view',
guid: '',
initialize: function (options) {
this.guid = options.guid;
},
render: function() {
var guid = this.guid;
}
});
創建我的看法是這樣的:
app.currentView = new app.views.CompanyView({guid: guid});
然後我通過render()
函數作爲參數傳遞給使用它作爲一個回調:
function call(callback){
callback();
}
call(app.currentView.render);
我試着this.guid
,options
和this.options
,但都是undefined
。有沒有辦法將這個變量傳遞給render()
函數而不使用它的參數或全局變量?這是一個JsFiddle example。
似乎按預期http://jsfiddle.net/nikoshr/cn8nN/ – nikoshr
您應該能夠訪問this.guid在渲染(),除非渲染()被調用由其他對象。在這種情況下,你需要添加_.bindAll(this,「render」);在你初始化。 –
@nikoshr我發現只有當我使用render函數作爲回調時纔會出現問題。更新你的小提琴,所以現在它再現了我的問題。 – totymedli