我需要一些關於如何構建主幹/牽線木偶應用程序的通用指南。我對這些框架以及一般的js都很陌生。通用主幹/牽線木偶程序結構
基本上我有兩頁,每頁都有一個列表。我已經建立了一個應用程序,該應用程序路由器:
var app = new Backbone.Marionette.Application();
app.module('Router', function(module, App, Backbone, Marionette, $, _){
module.AppLayoutView = Marionette.Layout.extend({
tagName: 'div',
id: 'AppLayoutView',
template: 'layout.html',
regions: {
'contentRegion' : '.main'
},
initialize: function() {
this.initRouter();
},
...
});
module.addInitializer(function() {
var layout = new module.AppLayoutView();
app.appRegion.show(layout);
});
});
在initRouter我有兩個功能,一是爲每個被通過路由器根據URL稱爲頁面。
的內容管理頁面中的功能是這樣的:
onCMNavigated: function(id) {
var cMModule = App.module("com");
var cM = new cMModule.ContentManagement({id: id, region: this.contentRegion});
contentManagement.show();
this.$el.find('.nav-item.active').removeClass('active');
this.cM.addClass('active');
}
因此,如果這就是所謂的,我創建了內容管理模式的新實例。在這個模型中,show()被調用時,我從rest api中獲取數據,然後解析出需要在列表視圖中顯示的橫幅數組。這可以嗎?該模型如下所示:
cm.ContentManagement = Backbone.Model.extend({
initialize: function (options) {
this.id = options.id;
this.region = options.region;
},
show: function() {
var dSPage = new DSPage({id: this.id});
dSPage.bind('change', function (model, response) {
var view = new cm.ContentManagementLayoutView();
this.region.show(view);
}, this);
dSPage.fetch({
success: function(model, response) {
// Parse list of banners and for each create a banner model
}
}
});
cm.ContentManagementLayoutView = Marionette.Layout.extend({
tagName: 'div',
id: 'CMLayoutView',
className: 'contentLayout',
template: 'contentmanagement.html',
regions: {
'contentRegion' : '#banner-list'
}
});
現在我最大的疑問是我如何去從這裏顯示的旗幟列表?我爲橫幅列表創建了一個collectionview和項目視圖,但是這個程序結構是否正確?
對不起,但在我看來,你有點兒遍佈這裏:你有一個佈局(這是一個視圖)實例化一個路由器,也是一個生成佈局視圖的模型。路由器應該是自己的模塊,然後告訴控制器要做什麼。控制器使用集合和模型實例化佈局和視圖。我只能建議(購買和)閱讀在木偶網站上提供的書籍。這真是花了很多錢。 – christian314159
謝謝,我也意識到了。所以我讀了一些文件,並根據你也建議的結構重新啓動它。 – user3821383