2013-02-16 6 views
0

사용자가 새 모델을 만들 수있는 양식이 있습니다. 모델에는 많은 잠재적 속성이 있으며 양식은 사용자가이 모델에 대해 "활성"으로 선택할 수있는 모든 옵션을 나열해야합니다.모델의 옵션에 대한 Backbone.js 컬렉션

옵션 컬렉션을 어떻게 관리해야하는지 궁금합니다. 두 가지 다른 방법이 있다고 생각합니다.

1) 양식이있는보기와 모델에 다른 모음이 첨부되어 있습니다. 목록의 항목이 뷰에서 선택되면 항목이 모델의 컬렉션으로 복사됩니다.

2) 모델에 단일 컬렉션이 있고 항목을 "선택됨"또는 "선택되지 않음"으로 표시하므로 컬렉션이 하나뿐이므로 두 컬렉션을 비교할 필요가 없습니다. 모델과 그렇지 않은 모델.

첫 번째 옵션이 "적합"하다고 생각했습니다. 모델의 일부인 모델의 데이터 만 가지고 있기 때문에 서버에 저장하여 저장해야합니다. 전체 "선택"된 것이 있다면 서버에 보낼 대상을 결정하기 위해 저장 시간에 해당 데이터를 정렬해야합니다.

+0

특정 모델의 특성에 대한 백본 컬렉션을 만들려고합니까? 콜렉션은 실제로 서버 측 상관 관계와 함께 모델 모음으로 설계되어 있으므로 다른 접근 방식을 권장합니다. 대신 모델에서 가능한 속성 배열을 지정하거나 서버 응답에서 추출하여 폼에 표시 한 다음 선택한 특성을 작성시 새 모델에 추가합니다. – glortho

+0

응용 프로그램의 다른 위치에서 저장하고 업데이트 할 수있는 완전한 모델은 아니지만 속성/옵션은 매우 광범위하며 선택한 '부모'특성에 따라 다릅니다. 모델을 직접 모델링하는 것은 실제로 작동하지 않으며 이러한 옵션을 얻으려면 모델에서 여러 가지 요청을하는 것이 지저분합니다. 컬렉션과 함께 '의사'모델을 사용하면 옵션을 훨씬 쉽게 관리 할 수 ​​있습니다. – Eric

+0

언더 스코어가 제공하는 열거 자 외에도 백본 모델/컬렉션의 어떤 기능이 도움이됩니까? Backbone.Collection.update()? 그냥 궁금해서. – glortho

답변

0

나는 두 개의 별도 모델이 있어야한다고 권장합니다. 부모 모델 하나와 옵션 모델 한 개. 두 가지 모두에 해당하는 컬렉션이 있습니다.

부모 모델에는 중첩 된 옵션 모음이 있습니다. 이것은 Backbone에서 기본적인 다 - 대 - 다 구현입니다.

내 모델과 컬렉션에 진정한 관계가 반영되도록 항상 열정적입니다. 여기에 옵션이 자신의 사용법을 가진 적절한 엔티티라고 생각한다면 나는 그 모델을 만드는 것을 고려할 것입니다.