0
'entries /:id'のURLを訪問/ナビゲートしたときに、モデル値をルータから警告することができません。しかしコンソールログでは、私は正しい属性&値を持つ変数を見ることができます。私はクロムコンソールでデータを取得するためにテストした&それは正常に動作します。私のルータ内部のcoffeescriptを使用してモデル値を取得する方法Backbone.js Coffeescript
:
私のモデルの内部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')
ソリューション: 私はフェッチからの値が成功イベントに及びそのための我々IF /後の時にのみ利用することが分かりました次の行でgetを使用しようとすると、おそらく期待どおりの値が返されません。
私は成功コールバックを使用することをお勧めします。 –
これは推奨されている方法ではありませんが、動作します。イベントバインドの理由は、モデル/コレクションの変更をリッスンする複数のものがある場合です。成功のコールバックはそれらをすべて起動することはできませんし、そうした場合、あなたはスパゲッティコードで終わるでしょう。 – Gazler