사용자가 북마크하거나 다음 URL을 공유 한 경우 전체 페이지를 렌더링하기 위해 내 페이지 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 %>);
그러나
의 I가 필요한 부트 스트랩의 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를 반환해야합니다. 사전에
감사합니다.
나는 당신의 대답을 올렸다 (비슷한) #/menus/99에 맞지 않기 때문에 틀림없이 (내 의견으로는) :) #/menus/99/items33/ingredients –
에 대한 중첩 콜백 지옥에 적합합니다. 하나의 접근법 (아직 시도하지 않은)은 약속/비동기 라이브러리 (예 : JQuery 약속, 노드 약속 또는 비동기 [https://github.com/caolan/async])의 일부 형식을 사용하는 것입니다. – stusmith
나는 약속 도서관 중 하나에 소용돌이를 줄 것이다. 아이디어를 가져 주셔서 감사합니다. 아마도 두 개의 라우터를 만들 것입니다. 하나의 페이지로드 (think window.onload)에서만 페이지 (# menus/99/items/33/ingredients)에 필요한 모든 데이터를로드 한 다음 사용자가 응용 프로그램을 탐색 할 때 다른 라우터를로드합니다. 질문을 계속 열어두면 더 많은 아이디어가 들어올 것입니다. 나는이 질문을 한 유일한 사람이 될 것이라고 상상할 수 없습니다. 감사! –