我想知道爲什麼嘗試呈現索引函數給我一個cannot call method render of null
錯誤。有沒有辦法讓索引函數等待呈現,直到路由器的初始化完成。 console.logs似乎暗示索引函數試圖在初始化完成之前呈現ajax調用延遲索引的呈現,直到初始化完成
1.Uncaught TypeError: Cannot call method 'render' of null gallery.js:231
2. XHR finished loading: "http://localhost:3000/readjsonfile". jquery.js:8241
3.success
這是代碼。我有
var Gallery = Backbone.Router.extend({
routes: {
"": "index",
},
據initally設置爲null
_index: null,
圖庫路由器檢查的初始化如果該索引是空的路線,並且,如果是,創建一個具有數據的新觀點。
initialize: function(options) {
var ws = this;
if (this._index === null){
$.ajax({
url: 'galleries',
dataType: 'json',
data: {},
success: function(data) {
console.log("success");
console.log(data);
ws._data = data;
ws._photos = new PhotoCollection(data);
ws._index = new IndexView({model: ws._photos});
console.log(ws._index);
Backbone.history.loadUrl();
},
error: function(r){
console.log("error");
console.log(r);
}
});
return this;
}
return this;
},
這是該指數函數,初始化後立即放置,呈現在初始化創建上面的觀點,但是,我發現了一個Cannot call method 'render' of null
錯誤
index: function() {
this._index.render();
},
這是一個真棒答案。我會去玩弄它,以確保我能夠把它運用起來並理解這一切,然後再回來接受。謝謝。 – BrainLikeADullPencil