我有一個簡單的骨幹應用程序,我試圖變成Marionette。Marionette - 如何訪問控制器中的應用程序區域
在應用程序中定義的應用程序,並添加區域出現,也初始化試圖讓AppRouter如下:
iApp.addInitializer(function(options){
// Add Router
iApp.addRouter = new Mrouter();
});
iApp.on("start", function(options){
Backbone.history.start();
});
iApp.addRegions({
header : "#mainheader"
});
Now in AppRouter added a method referenced in controller as below:
define([
'marionette',
'backbone',
'jquery',
'controller/controller'
],function(Marionette,Backbone,Router,Controller){
var appRouter = Marionette.AppRouter.extend({
controller : new Controller(),
appRoutes : {
'' : 'mainpage'
}
....
現在控制器試圖訪問應用區域等等我可以加載視圖如下:
define([
'marionette',
'backbone',
'underscore',
'jquery',
'../views/subviews/mheader',
'../mapp'
], function(Marionette,Backbone,_,$,Mheader,Iapp){
var iController = Marionette.Controller.extend({
initialize : function() {
console.log("Initialzier");
},
mainpage : function() {
Iapp.header.show(new Mheader());
// Add region or fix the view.
},
onClose : function() {
console.log("closing the contoller");
}
});
return iController;
控制器中的「標題」是不可訪問的,我猜我甚至打印了應用程序它是空的。
問題1:它不會創建應用程序的循環依賴嗎? 問題2. - 爲什麼App不可用?
此外,我想大部分的時間你將取決於AppRouter或Controller來渲染視圖,以反對在app.js中完成。我本可以在應用程序中做到這一點,但並不認爲這是個好主意。我經歷了 - https://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs,但是這個假設大部分的依賴是由於發泄 - 我認爲它可以是區域/佈局也創造依賴關係。 – skumar