당신이 찾고에 관심이 뭔가 될 수 있습니다. Backbone-relational을 사용하면 모델과 하위 모델 모음이 자동으로 만들어지고 이벤트가 부모 - 자식 관계를 통해 관리 될 수 있습니다.
맛보기를 얻을 수 있도록 샘플 코드를 알려 드리겠습니다. 예제 코드의 일부가 다음과 같이 보일 수 있습니다.
사용자는 많은 이벤트가 있습니다 : 당신은 백본 관계형 모델을 만들 때
User = Backbone.RelationalModel.extend({
relations: [
type: Backbone.HasMany, // Type of relationship
key: 'events', // How we reference the sub-models in collection
relatedModel: 'Event', // The sub-model type
collectionType: 'EventCollection', // The sub-model collection
reverseRelation: {
key: 'belongsToUser' // Key we use to refer to the parent
}
],
// Other Backbone.Model properties and functions
});
, 그것은 자동으로 지정하는 '키'의 이름을 따서 명명 당신을 위해 서브 모델의 컬렉션을 만듭니다. 따라서 각 사용자는 자신이 소유 한 관련 이벤트 모음을 정리할 수 있습니다.
기본적으로 사용자를 만들거나 가져올 때 필요한 관련 모델에 대한 참조를 제공합니다. 예를 들어, 사용자 ID = 1은 이벤트 5, 7 및 11이 필요할 수 있습니다. ID 만 사용하고 있습니다. 이러한 참조가 배열 형식으로 정의되는 한 Relational의 fetchRelated 메소드를 사용하여 지연 참조를로드 할 수 있습니다.
myUser = new User();
myUser.set({
name: 'RayMysterio',
age: '26',
events: [5, 7, 11] // Or this might just come with the User object from your server
});
myUser.fetchRelated('events');
// This will go fetch the related events for this user model from the URL you designate.
myUser.get('events');
// The collection of events are treated like an attribute of the User model.
myUser.get('events').find(function(eventModel){
return // some find condition - or whatever you want to do on that collection
});
특정 수신기를 하위 모델에 바인딩 할 수 있습니다.
myUser.bind('add:events', function(model, collection) {
// Whatever code you want to happen when new models are added to the user events coll
});
등 기타
그것은 1-1, 많은 하나와 역의 관계를 생산하는 좋은 방법입니다. 이것은 꽤 중요한 열쇠입니다. 모델과 모델 사이의 관계를 정의 할 때 모델을 만듭니다.
예. 사용자 모델의 새 인스턴스를 만듭니다.
백본 관계형은 역방향 링크를 자동으로 생성합니다 (이벤트 모델에는 역방향 연관 키 'belongsToUser'(또는 사용자가 이름을 지정 함)로 정의 된 속성이 있습니다.) 이것은 모델/하위 모델을 위아래로 모델 계층 구조.
관계형 필요에 기반이 잘 맞는 것 같아. 당신이 많은 많은을 원하는 경우에
,이 (중간 모델을 사용하여) 그 일의 라운드에 대한 방법입니다하지만 내가 찾은 Paul-Uithol은 얼마 동안 Backbone-Relational을 업데이트했으며 새로운 기능이 계속 추가되었습니다. 처음에는 학습 곡선이 약간 어려웠지만 일단 시작하면 그것에 익숙해 져서 그것은 매우 편리합니다.
참고 : 강조하자면, Mosselman은 Require.js를 추천했으며이 또한 강력하게 동의합니다. 그것은 내 코드를 훨씬 관리하기 쉽게 만들었습니다. 백본 관계형 코드를 수정하여 AMD와 호환되도록 만들 수 있으며, Require로 완벽하게 작동합니다.
UPDATE : 백본 관계형 지금이 2014 년 4 월 1 일에 릴리스 0.8.8의 같은 require.js을 지원합니다 - 감사합니다 케네스
이 이벤트 모델을 통해 사용자에게 이벤트를 연관 할 수 있습니까? 'myUser.set ('events', [myEvent1, myEvent2, myEvent3]);'이런 식으로 뭔가? 또는 관련 모델 ID를 통해 관계를 참조해야합니까? –
@orangewarp 백본 관계형은 이제 2014 년 4 월 1 일 릴리스 0.8.8에서 require.js를 지원합니다. http://backbonerelational.org/#change-log를 참조하십시오. – Kenneth