Javascript Backbone.js:未显示模型
我想显示一个简单的语言列表Javascript Backbone.js:未显示模型,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,我想显示一个简单的语言列表 class Language extends Backbone.Model defaults: id: 1 language: 'N/A' class LanguageList extends Backbone.Collection model: Language url: '/languages' languages = new LanguageList class LanguageListView
class Language extends Backbone.Model
defaults:
id: 1
language: 'N/A'
class LanguageList extends Backbone.Collection
model: Language
url: '/languages'
languages = new LanguageList
class LanguageListView extends Backbone.View
el: $ '#here'
initialize: ->
_.bindAll @
@render()
render: ->
languages.fetch()
console.log languages.models
list_view = new LanguageListView
languages.models
显示为空,但我检查了请求是否已传入,语言是否已获取。我错过什么了吗
谢谢。呼叫是异步的:
fetchcollection.fetch([options])
从服务器获取此集合的默认模型集,并在模型集到达时重置集合。选项哈希将成功
和错误
回调作为参数传递(收集、响应)
。当模型数据从服务器返回时,集合将重置
结果是,在languages.fetch()
调用从服务器获取任何信息之前,您的console.log languages.models
被调用
因此,您的渲染应该更像这样:
render: ->
languages.fetch
success: -> console.log languages.models
@ # Render should always return @
这应该能让你在控制台上找到些东西
调用语言更有意义。在initialize
中获取,并将@render
绑定到集合的reset
事件;然后你可以在收藏完成后把东西放在页面上
而且,CoffeeScript很少需要使用\uuuu.bindAll@
。您应该使用创建相关方法。是否重置并清空集合?我不知道如何使用它。@alste:reset
也是一个集合将触发的事件: