我試圖爲Backbone.Marionette中的控制器創建一個「基類」。我想這個問題可以由有關骨幹的知識的人來回答,因爲木偶與骨幹相同。我所做的是首先創建一個Marionette.Controller,它將通過從Marionette.Controller擴展而成爲基本控制器。然後,我進一步擴展了基本控制器以添加更多專用功能。我使用原型來調用基本控制器的initilize函數。這似乎工作正常,直到我發現基地似乎是靜態的。在下面的例子中,childid對於每個實例都是唯一的。然而,baseid對於所有實例都是相同的,即最新添加的baseid。Extend 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() }));
有沒有人知道是什麼原因造成的?