我是Marionette的新手,我无法让路线上班。
我使用的是Marionette的2.4.1版本,并尝试以最简单的方式进行,以便它能够正常工作。
此代码适用于旧版Marionette,v1.0.2,该版本包含在一个自选的发电机中。我知道这两个版本之间存在巨大差距,但对于每个帖子,博客,官方文档甚至为此框架代码编写的书籍都保持不变。
控制台中没有错误,但是主页'方法刚刚开始。
我在这里遗漏了什么吗?
application.js(申请团体):
define(['backbone', 'marionette'],
function (Backbone, Marionette) {
'use strict';
var App = new Marionette.Application();
App.Router = Marionette.AppRouter.extend({
appRoutes: {
"home": "home"
}
});
var myController = {
"home": function() {
console.log("This thing just won't work.");
}
};
/* Add initializers here */
App.addInitializer(function () {
console.log('App initialized');
new App.Router({
controller: myController
});
});
App.on("initialize:after", function () {
if (Backbone.history) {
Backbone.history.start();
}
});
return App;
});
main.js(启动我们在application.js中定义的应用程序):
require(['marionette', 'application'],
function ( Marionette, App ) {
'use strict';
App.start();
});
config.js(Config for require.js)
require.config({
baseUrl: "/scripts",
/* starting point for application */
deps: ['marionette', 'main'],
shim: {
backbone: {
deps: [
'underscore',
'jquery'
],
exports: 'Backbone'
},
marionette: {
deps: ['backbone'],
exports: 'Marionette'
}
},
paths: {
backbone: '../bower_components/backbone/backbone',
jquery: '../bower_components/jquery/dist/jquery',
underscore: '../bower_components/underscore/underscore',
/* alias all marionette libs */
'marionette': '../bower_components/marionette/lib/core/backbone.marionette',
'backbone.wreqr': '../bower_components/backbone.wreqr/lib/backbone.wreqr',
'backbone.babysitter': '../bower_components/backbone.babysitter/lib/backbone.babysitter'
}
});
答案 0 :(得分:0)
您似乎错过了对路由器控制器的引用。
尝试更新路由器以包含对myController的引用:
App.Router = Marionette.AppRouter.extend({
controller: myController,
appRoutes: {
"home": "home"
}
});
有关详细信息,请参阅AppRouter文档: http://marionettejs.com/docs/v2.4.1/marionette.approuter.html
答案 1 :(得分:0)
似乎在初始化之后:在...之后:
App.on("initialize:after", function () {
if (Backbone.history) {
Backbone.history.start();
}
});
最新版本的Marionette不支持,我应该开始改为:
App.on("start", function () {
if (Backbone.history) {
Backbone.history.start();
}
});
关于木偶的大多数帖子似乎都过时了。这些仍然非常有用,但请务必使用官方框架的文档进行验证。
我应该首先做到这一点..