2012-02-23 8 views
2

backbone.js Webアプリケーションのアーキテクチャについて質問があります。ムービーコレクションwebappを作成しているとしましょう。あなたはムービーのモデルを、ムービーのコレクションのコレクションを使用します。htmlページにbackbone.jsコレクションをロードするload

コレクションのビューは、基本的にはリの負荷です。

Googleでインデックスを作成できるようにするには、JavaScriptなしで動作し、サーバー側でレンダリングされるようにします。そのため、mydomain.com/12に行くとサーバー側でそのコレクションのhtml li要素を構築します。

backbone.jsを使用してコレクションを変更する場合は、バックボーンにデータをロードする必要があります。これを行う最善の方法は何ですか?私がこれを行うと考えることができる2つの方法は...

1)jqueryを使用してデータをバックボーンに読み込みます。この問題は、htmlにおそらく映画の名前のみが含まれていて、バックボーンモデルに必要な映画のID /ディレクター情報。私はデータがhtmlに含まれ、cssを使って隠されていると思います。

2)すべてのデータをリストから取り除き、ajaxを使用してサーバーからリロードします。これは、すべてのデータが最初のページロードで送信された可能性があるためです。

いずれかの方法が適していますか?もしそうでなければ、どうすればいいのですか?

<script> 
    Accounts.reset(<%= @accounts.to_json %>); 
    Projects.reset(<%= @projects.to_json(:collaborators => true) %>); 
</script> 

Backbone FAQ - Loading Bootstrapped Modelsを参照してください:

答えて

3

ジェレミー・アッシュケナス、バックボーンの著者は、あなたがページにJSONなどのモデルデータを印刷し、それをオブジェクトとして読み込むことをお勧めします。

+0

クイック返信をいただきありがとうございます。 foo.jsファイルでリセットしますか? – dan

+0

私はどちらが良いか悪いと言うことができませんでした、それはあなたのプロジェクトをセットアップする方法に依存します! –

+0

全体の話を伝えるためには、サーバーサイドで生成されたコンテンツをDOMから捨てて、バックボーンで再度レンダリングする必要があります(もちろんAJAXコールを追加しなくてもかまいません)。 – opengrid

関連する問題