Backbone.Marionette에서 컨트롤러에 대한 "기본 클래스"를 만들려고합니다. 나는이 질문이 마리오네트가 백본과 동일하게 확장 된 이후의 백본에 대한 지식을 가진 누군가가 대답 할 수 있다고 생각한다. 내가 한 것은 Marionette.Controller에서 확장하여 기본 컨트롤러로 작동하는 Marionette.Controller를 먼저 만드는 것입니다. 그런 다음 기본 컨트롤러를 더 확장하여보다 전문화 된 기능을 추가했습니다. 프로토 타입을 사용하여 하위 컨트롤러에서 initilize 함수를 호출합니다. 기지가 정적 인 것처럼 보일 때까지 이것은 잘 작동하는 것처럼 보였다. 아래 예제에서 childid는 각 인스턴스마다 고유합니다. 그러나 baseid는 모든 인스턴스에 대해 동일 할 것이고, 최신 baseid가 추가됩니다.Marionette.Controller를 확장하십시오.
App.Common.BaseWidget.Controller = Marionette.Controller.extend({
initialize: function (options) {
this.model = options.model;
this.id = options.baseid;
this.region = options.region;
}
});
App.Widgets.ChildWidget.Controller = App.Common.BaseWidget.Controller.extend({
initialize: function (options) {
App.Common.BaseWidget.Controller.prototype.initialize(options);
this.id = options.childid;
}
});
var widgets = []
widgets.push(new App.Widgets.ChildWidget.Controller({ "model": model , "region": region, "baseid": App.newGuid(), childid: App.newGuid() }));
이 문제의 원인을 아는 사람이 있습니까?