こんにちは、私は次のようなバックボーンアプリを持っています:
code.js.コーヒー
window.Code =
Models: {}
Collections: {}
Views: {}
Routers: {}
initialize: ->
new Code.Routers.Todos();
Backbone.history.start()
$(document).ready ->
Code.initialize()
todos_router.js.coffee
class Code.Routers.Todos extends Backbone.Router
routes:
'': 'index'
'todos/:id': 'show'
initialize: ->
@collection = new Code.Collections.Todos()
@collection.fetch()
index: ->
view = new Code.Views.TodosIndex(collection: @collection)
view.render()
$('#container').html(view.el)
show: (id)->
alert "#{id}"
todos.js.coffee --> コレクション
class Code.Collections.Todos extends Backbone.Collection
url: '/todos'
todos_index.js.coffee
class Code.Views.TodosIndex extends Backbone.View
template: JST['todos/index']
initialize: ->
this.collection.on('reset',this.render,this)
render: ->
$(@el).html(@template(todo: this.collection))
問題は、テンプレートでコレクションをレンダリングして長さを取得すると、データベースに 1 つのレコードがあるにもかかわらず結果が 0 になることです。ここで何が間違っていますか?this.collection のコンソール出力は次のとおりです。
Todos {length: 0, models: Array[0], _byId: Object, constructor: function, url: "/todos"…}
_byId: Object
_events: Object
length: 1
models: Array[1]
__proto__: ctor
ありがとう!