当我访问/导航到 'entries/:id' url 时,我无法从路由器提醒模型值。但是在控制台日志中,我可以看到具有正确属性和值的变量。我已经测试过在我的 chrome 控制台上获取数据并且它工作得很好。
在我的路由器里面:
class Raffler.Routers.Entries extends Backbone.Router
routes:
'': 'index'
'entries/:id': 'show'
initialize: ->
@collection = new Raffler.Collections.Entries()
@collection.reset($('#container').data 'entries')
index: ->
view = new Raffler.Views.EntriesIndex(collection: @collection)
$('#container').html(view.render().el)
show: (id) ->
entry = new Raffler.Models.Entry({id: id})
entry.fetch()
console.log(entry.get('title'))
alert entry.get('name')
console.log(entry)
console.log(entry.attributes + " haha")
viewsangat = new Raffler.Views.Page({model: entry})
viewsangat.render()
在我的模型中:
class Raffler.Models.Entry extends Backbone.Model
urlRoot: '/api/entries'
win: ->
@set(winner: true)
@save()
@trigger('highlight')
解决方案:我发现 fetch 的值仅在成功事件期间/之后可用,因此如果我们尝试在下一行使用 get,它可能不会按预期返回值。