「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 を使用しようとすると、期待どおりに値が返されない可能性があります。