【发布时间】:2013-11-26 05:30:44
【问题描述】:
我有一个简单的主干应用程序,我想把它变成木偶。
已经在应用程序中定义了应用程序并在那里添加了区域,在初始化时也尝试获取 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'
}
....
现在在 Controller 中尝试访问 App 区域,以便我可以加载如下视图:
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;
控制器中的“header”无法访问,我想我什至打印了它即将为空的应用程序。
问题1. - 它不会创建App的循环依赖吗? 问题 2. - 为什么应用程序无法访问?
【问题讨论】:
-
另外我认为大多数时候你会依赖 AppRouter 或 Controller 来呈现视图,而不是在 app.js 中完成。我本可以在 app.'s 中做到这一点,但我真的不认为这是个好主意。我经历了 - github.com/marionettejs/backbone.marionette/wiki/… 但这假设大部分依赖是由于发泄 - 我认为它也可以是创建依赖的区域/布局。
标签: backbone.js requirejs marionette