0

레일과 함께 백본 (3.1)을 사용하고 있습니다. 나는 검색 페이지가있다. 페이지가로드 될 때 첫 번째 검색 결과에 페이지 매김 된 모든 결과가 표시되어야합니다. 나중에 검색 요청은 백본을 사용합니다. DRY를 위반하지 않으면 어떻게해야합니까?Rails & Backbone :: 결과 렌더링시기는?

Backbone에서 모든 요청을 수행 할 수 있지만 (1) 페이지 load (2) 백본에서 한 번 더 요청하면 시작할 때 모음을 설정할 수 있습니다. 백본 문서에서

:

로드 부트 스트랩 모델 이 경우 앱이 처음로드, 그것은 페이지를 렌더링하기 위해, 당신은 당신이 필요 해요 알고 초기 모델의 집합을 가지고하는 것이 일반적이다. 그 (것)들을 가져 오기 위하여 여분 AJAX 요구를 해고하는 대신에, 더 좋은 패턴은 그들의 데이터가 이미 페이지로 부트 스트래핑되도록하는 것입니다. 그런 다음 재설정을 사용하여 콜렉션을 초기 데이터로 채울 수 있습니다. 당신은 백본의 모든 렌더링을 수행하여 작업을 수행하고 서버가 데이터 만 계산하도록 할 수 있습니다

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

백본의 모든 요청을 수행하십시오. (1) 동일한 방식으로 모든 검색을 수행하는 것이 더 간단합니다. (2) 사실인지 전혀 모르겠습니다. –

답변

1

: DocumentCloud에서, 작업 공간의 ERB 템플릿에, 우리는이 라인을 따라 뭔가.

<script type='text/javascript'> 
    var search_results = new SearchResults(<%= results.to_json %>) 
</script> 

그래서 당신은 당신의 모델을 초기화하고 백본은 결과의 렌더링을하자 : 당신의 레일보기에서 첫 번째 검색에

, 당신은 JSON 등의 검색 결과를 포함한다. (당신은 레일즈 뷰에서 결과를 렌더링하지 않습니다.)

레일스에서 ​​JSON 결과를 얻고 search_results 콜렉션을 백본에서 재설정하면 같은 뷰가 결과를 렌더링합니다.

관련 문제