2014-02-06 4 views
1

올바른 방법이 무엇인지 잘 모르겠습니다. 나는 간단한 형태를 세우고있다. 몇 가지 표준 HTML 입력 필드와 몇 가지 선택 입력이 필요합니다. 과 같이보기에 데이터로, 데이터는 다른 소스의 몇에서오고 난 모델과 컬렉션을 제시 하 고 싶습니다 :Marionette/Backbone보기에서 여러 모델 및 컬렉션 사용

컨트롤러 :

var registerView = new registrationView.RegistrationForm({ 
    model: userModel, 
    model2: departmentCollection 
}); 
myApp.SomeRegion.show(registerView); 

나는이 작업을 수행 할 수 있습니까? 또는 양식을 별도의 영역으로 분할해야하며 모두 모두 자체 모델 또는 컬렉션으로 분할해야합니다. 그렇다면 템플릿의 모델 데이터를 어떻게 호출해야합니까? 나는 지금까지 그 일을 할 수 없었습니다. 나는

많은 감사

Wittner을 다른 모델과 컬렉션에서 오는 혼합 필드 형태의 예를 찾을 수 없습니다

당신은 복합 뷰를 사용하여 작업을 수행 할 수 있습니다

답변

0

:

var registrationView.RegistrationForm = Marionette.CompositeView({ 
    // ... 
}); 

var my View = new registrationView.RegistrationForm({ 
    model: userModel, 
    collection: departmentCollection 
}); 

참조 https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.compositeview.mdhttps://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md (컴포지트보기는 콜렉션보기에서 비헤이비어를 상속합니다).

+0

데이비드에게 감사드립니다. 나는 훌륭한 책을 당신에게서 많이 배웠습니다 :-) 그러나, 그것이 '과잉 공격'인지 아니면이 문제를 해결할 수있는 최선의 방법인지 나는 알지 못했습니다. 따라서 여러 개의 선택 입력이있는 양식이있는 경우 올바른 패턴은 페이지를 위로 (레이아웃을 사용하여) 분할하고 별도의보기가있는 서로 다른 영역을 사용하고 각각은 각각의 모델/컬렉션을 사용하여 단일 양식을 만듭니다. – Wittner

+0

그것은 내가 선호하는 것입니다 : 그것은 약간 더 cde지만, 유지하는 것이 더 간단합니다. 그러나 원하는 경우 단일보기에서이를 수행 할 수도 있습니다. 근본적으로 선호도에 따라 ... –