많은 솔루션이 있다는 것을 알고 있지만 커뮤니티의 의견이 궁금합니다.모델 또는 컬렉션 생성자 내에 모델 또는 컬렉션 별 뷰 저장
일련의 모델과 컬렉션이 있습니다. 각 모델에는 세부 사항, 편집, 인쇄, 옆으로, 도움 등보기와 같은 여러보기가 있습니다. 컬렉션에는 종종 동일한 이름 (예 : 옆으로, 도움말 등)이있는보기가 있습니다.
내가 가진 한 가지 요구 사항은 모듈에서 코드를 구조화해야한다는 것입니다. 모듈이로드되지 않은 경우 응용 프로그램은 모듈의 기능을 추적 할 수 없습니다. 예를 들어 사용자에게 다른 사용자를 보거나 편집 할 수있는 권한이없는 경우 이런 일이 발생할 수 있습니다. 따라서 "사용자"모듈은로드되지 않습니다.
그래서 ... 나는 모델의 생성자를 할 수있는 모델과 컬렉션의 생성자 컬렉션에 대한 뷰 정의를 저장하기에 좋은 장소를 생각했다. 예 :var User = (function(){ // module definition
// model definition
var Model = Backbone.Model.extend({
initialize: function() {
// ...
}
},{
Views: {
Details: Backbone.View.extend({
// ...
}),
Aside: Backbone.View.extend({
// ...
}),
Help: Backbone.View.extend({
// ...
})
}
});
// collection definition
var Collection = Backbone.Collection.extend({
model: Model,
initialize: function() {
// ...
}
},{
Views: {
Aside: Backbone.View.extend({
// ...
}),
Help: Backbone.View.extend({
// ...
})
}
});
// add more code here
return { // make model and collection public
Model: Model,
Collection: Collection
};
})(); // end module definition
나는 내 견해를 다른 곳에서 살릴 수 있다는 것을 알았지 만,이 접근법에는 내가 알지 못하는 상당한 결점이 있습니까? 아마도 메모리 누수 또는 덜 명확한 것이 있습니까?
감사합니다.
흠 ... 내 질문의 일부분을 추측하고, 이것이 기본이라고 들리면 유감스럽게도 : 인스턴스를 만들 때 "보기"개체가 인스턴스마다 한 번 복사 될지 아니면 생성자에 추가하여 이러한 정의가 메모리에 한 번만 추가되도록 보장합니까? – luisgo