如果用戶書籤,或分享下面的網址,如何應該我一個頁面Backbone.js的應用程序(使用Backbone.Router)去爲了渲染整個視圖檢索所需要的數據?Backbone.js的自舉嵌套資源
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,然後返回一些jsonp到調用者頁面http://mydomain.example.com/menus#/menus/99/items/33/ingredients。
在此先感謝。
我調升你的答案,因爲這是我現在在做什麼(類似)的#/菜單/ 99所以它絕對不會出錯的(在我看來):) 但它本身借給一個嵌套回調地獄#/菜單/ 99/items33 /成分 –
它確實。一種方法(我還沒有嘗試過)會使用某種形式的promise /異步庫(例如JQuery promise,node-promise或async [https://github.com/caolan/async])。 – stusmith
我會給一個承諾庫一個漩渦。感謝這個想法。也許我會創建兩個路由器。一個僅用於初始頁面加載(think window.onload)來加載頁面(#menus/99/items/33/ingredients)所需的所有數據,然後用於用戶瀏覽應用程序的另一個路由器。我打算保持這個問題的公開性,並希望有更多的想法進來。我無法想象我會成爲唯一有此問題的人。謝謝! –