使用requirejs是否意味着我不再处理全局变量了?
我开始在我的项目中实现requirejs。在使用requirejs之前,我将自定义Backbone Router类附加到命名空间变量:
app.Router = Backbone.Router.extend({customStuffInHere});
假设我现在将其定义为“模块”:
define(['backbone'], function(Backbone) {
return Backbone.Router.extend({customStuffInHere});
});
没有问题,因为我的自定义路由器在它自己的文件Router.js中。所以它遵循约定每个文件一个模块。
当我在requirejs之前创建这个路由器的实例时,我只是在做:
....code....
app.router = new app.Router();
....code....
现在我必须为此实例创建一个完整的新文件,并将其包含在当前模块中?
我做得对吗?
编辑:我想我的问题是如何为我的所有应用程序提供单一的路由器模型?
答案 0 :(得分:0)
使用没有.js扩展名的JS文件的相对路径。
(或使用baseUrl
)的相对路径
本质上,RequireJS模块是单例,意味着您将在任何define
或require
调用中获得对同一对象的引用
require('./path/to/Router', function () {
var router = new Router();
}};