1

ユーザーが次の URL をブックマークまたは共有している場合、1 ページの backbone.js アプリケーション (Backbone.Router を使用) は、完全なビューをレンダリングするために必要なデータを取得するにはどうすればよいですか?

http://mydomain.example.com/menus#/menus/99/items/33/ingredients

ユーザーがhttp://mydomain.example.com/menusをブックマークした場合、メニューの最初のページを簡単にブートストラップできます。

# Inline before </body>, in a <script> block
Menus.reset(<%= @menus.to_json %>);

しかし、上記のケースでは、3 層のブートストラップが必要ですが、これは #hashtag ナビゲーションであるため、サーバーはメニュー、:menu_id のメニュー、アイテム、:item_id のアイテム、および食材の最初のページをブートストラップすることを知りません。

# It would look like the following on a real page
# http://mydomain.example.com/menus/99/items/33/ingredients
# please see past the invalid syntax
Menus.reset(<%= @menus.to_json %>);
var menu = Menus.get(99);
menu.items.reset(<%= @menus.find(99).items.find(:all).to_json %>);
var item = Menus.items.get(33);
item.ingredients.reset(<%= @menus.find(99).items.find(33).ingredients.find(:all).to_json %>);

これを達成するために他の人が使用するパターンはありますか? これはあなたにとって意味がありますか?

私は、任意のページを描画するために必要なすべてのモデルとコレクションをフェッチすることのみを目的として、ブートストラップ コントローラーを作成することを強く望んでいます。/bootstrap?path=/menus/99/items/33/ingredients 呼び出し元のページhttp://mydomain.example.com/menus#/menus/99/items/33/ingredientsにjsonpを返すようにします。

前もって感謝します。

4

1 に答える 1