私のコードは次のとおりです。
var AppRouter = Backbone.Router.extend({
_data: null,
_length: 0,
_index: null,
_todos: null,
_subtodolist: null,
_subtodos: null,
routes: {
"*action": "index",
"category/:name": "hashcategory"
},
initialize: function(options){
var self = this;
if (this._index === null){
$.ajax({
url: 'data/todolist.json',
dataType: 'json',
data: {},
success: function(data) {
self._data = data;
self._todos = new TodosCollection(data);
self._index = new CategoriesView({collection: self._todos});
//self._index.render();
}
});
return this;
}
return this;
},
index: function(){
this._index.render();
},
....
しかし、私が始めると、firebug コンソール パネルは常に関数this._index
内で null であると通知しindex
ます。self._index.render()
コールバック関数の下部で使用し$.ajax success
て、ホームページをレンダリングする必要があります (上記でコメントアウトされています)。index
関数は関数の前に実行されるようですinitialize
。どうすればそれが起こり、どうすれば修正できますか?
ちなみに では、routes
を使う"": "index"
と動かなくなります。私は使用する必要があります"*action": "index"
。しかし、デフォルトの URL は単なる空の文字列である可能性があることを別の場所で学びました。なんでここじゃ使えないの?