2012-02-22 7 views
0

バックボーンのドキュメントで示唆したように、私は私のコレクションのための初期データを提供するHTMLは私のRailsアプリによってレンダリングされます。ユーザーがために、特定のルートをトリガしたときに今バックボーン初期の収集データとそれに続くフェッチ

<script> 
MyCollection.reset(<%= @items.to_json %>) 
</script> 

たとえば、彼女は#search/catsに行く、私はこのような、再びコレクションをフェッチ:

MyCollection.fetch({ data : { "query" : "cats" }}) 

問題は、ユーザーが戻ったときに、どのように私は初期件のデータを再びCollectionをリセットしない、ということでしょうか?

答えて

1

ブロック内にコードを挿入しないでください。必要なときにいつでも呼び出すことができる方法で、JavaScriptファイルに入れる必要があります。

ただし、HTMLファイルからレンダリングされたデータを取得する必要があります。これを行うには、スクリプトブロックからデータを渡すことができるオブジェクトを作成する必要があります。そして、あなたがデータを保存することができますし、後でそれを使用し、必要なとき:


<script src="/js/myApp.js"></script> 
<script> 
    MyApp.initialize(); 
</script> 

あなたの「myApp.js」ファイルは、「初期化」の方法でオブジェクトの定義が含まれます


MyApp = { 
    initialize: function(data){ 
    this.data = data; 
    this.resetCollection(); 
    }, 

    resetCollection: function(){ 
    MyCollection.reset(this.data); 
    } 
}; 

を今すぐたび必要な場合は、MyApp.resetCollectionに電話して、開始したデータでコレクションをリセットすることができます。

もちろん、これを実装する方法は数多くあります。私はあなたに最も基本的なバージョンを示しています。

+0

ありがとうございます。したがって、解決策は、 ''とし、コントローラのどこかで 'this.initialData'を参照してください。そうではありませんか? –

+0

あなたが提案した解決策に一層合致するように返信を編集します。 –

+0

右 - 編集:) –

関連する問題