我正在尝试使用Backbone.Marionette和RequireJS设置新的应用程序。我跟随enzo's guide一起设置我的路由器和控制器但是在尝试实例化控制器时遇到以下错误 - “未定义不是函数”。
require( ['marionette', './assets/js/router', './assets/js/routeController'], function (Marionette, Router, routeController) {
var MyApp = new Backbone.Marionette.Application();
var controller = new routeController({});
如果我将鼠标悬停在routeController中,则函数paramater显示为“undefined”。
我做错了什么?这让我疯了。
编辑:routeController文件如下 -
define(["marionette"], function (Marionette) {
var Controller = Backbone.Marionette.Controller.extend({
initialize : function(options) {
},
start: function() {
},
home : function () {
alert('Hello, welcome home!');
},
});
return Controller;
});
答案 0 :(得分:1)
当您从RequireJS请求模块时获得null
时,有两种典型的可能性:
1)所需的模块没有返回
Controller
中的routeController.js
是否为空?在那里放一个调试器以确保。
2)某处存在循环依赖
在模块中的某处创建循环依赖很容易。看起来不像这样,但如果router.js
正在做一些时髦的事情,可能会发生这种情况。