2012-07-20 3 views
0

연습용으로 간단한 Backbone.js 앱 (사람들 인용 데이터베이스)을 만들고 있습니다. 나는 두 개의 레이아웃을하고 싶은Backbone.js 페이지 레이아웃 및 전 세계적으로 사용할 수있는 모델 컬렉션

질문

  1. (Person 많은 QuotesComments있다).

    하나는 표준 2 열 레이아웃으로, 한 열이 세로 막대로 다른 하나는 내용 영역으로 사용됩니다. (그 열에보기를 포함시키고 사이드 바를 정적으로 유지하고 싶습니다.)

    다른 하나는 인증을위한 간단한 한 열 레이아웃입니다 (인증을 추가하기를 원합니다. 계획). 로그인 양식이있는 간단한 페이지. 분명히,이 레이아웃은 하나의보기에만 사용됩니다.

    어떻게하면됩니까? 가능한/쉬운 플러그인이 있습니까? (본질적으로, 레일 레이아웃 시스템에 해당하는가?)이 사이드 바에서

  2. , 나는 각 페이지에 사용할 수 있어야합니다, Person 모델 객체의 목록을 가지고 모든 Person 오브젝트 그래서 목록을하고 싶습니다. Rails에서는 ApplicationController의 간단한 before_filter를 사용하여이 작업을 수행합니다.

    이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1
  1. 는 또한 유사한 레이아웃 구조를 필요로하는 프로젝트에서 일했다. 프론트 엔드에 두 개의 백본 인스턴스가있는 레일 앱이있었습니다. 레이아웃을 얻으려면 jQuery-UI-Layout을 사용했습니다. 이렇게하면 사이드 바 및 열을 나타내는 '패널'을 여러 개 만들 수 있습니다. 그런 다음 각 패널에 대한 견해를 간단하게 렌더링 할 수 있으며 매우 훌륭하게 구분됩니다.

  2. 따옴표 및 주석보기를 만들 때 사람 모델 개체에 액세스 할 수 있도록 사용자 컬렉션에 전달할 수 있습니다.

그래서 ...이 기본보기 당신의 jQuery UI 레이아웃을 초기화합니다, 당신은 'main_view'을 말해봐.

$(this.el).layout({options}) 

여기서 옵션은 인용 및 설명 패널에서 크기를 설정합니다. 그런 다음보기를 만들고 '사람'컬렉션을 전달합니다.이 컬렉션은 '사람'모델 모음입니다.

new App.Views.QuotePanelView({ 
    el: $(this.el).find('#quote_panel'), 
    collection: people 
}) 

여기 사람들은 사람들의 모임입니다. 덧글 패널에서도 마찬가지입니다.

var people = new People([ 
    {"name" : "James Cameron"}, 
    {"name" : "Bat Man"}, 
    {"name" : "Cool Guy"} 
]); 
+0

감사합니다. 확실히 명확하게 알 수 있습니다. 해당보기를 각보기에서 지정하지 않고 각보기에 전달하는 DRY 방법이 있습니까? – user1540964

+0

예! 'main_view'를 만들 때 사람들의 컬렉션을 전달하십시오. 그런 다음 new App.Views.QuotePanelView ({ el : $ (this.el))과 같은 작업을 수행 할 수 있습니다.찾기 ('# quote_panel'), 수집 : this.collection }) –

관련 문제