我正在尝试在requirejs
配置中设置REST网址。这是我的配置:
require.config({
config: {
url: 'http://test.herokuapp.com'
}
});
然后我尝试访问模块中的url:
define(function(require, exports, module) {
'use strict';
var Backbone = require('backbone');
var url = module.config().url;
var SessionModel = Backbone.Model.extend({
url: url + '/login'
});
return SessionModel;
});
然后我启动了我的应用程序,当我尝试点击该网址时出现此错误:
POST http://99.44.242.76:3000/app/undefined/login 404 (Not Found)
我的url
未定义。如何在模块中访问我的配置文件?
答案 0 :(得分:1)
config
设置适用于每个模块。 config
设置是具有键模块名称的对象,module.config()
仅返回与调用它的模块名称关联的值。因此,您必须将模块名称放在配置中:
require.config({
config: {
my_module: {
url: 'http://test.herokuapp.com'
}
}
});
my_module
应该是模块的实际名称。然后,url
设置将显示为module.config().url
(这是您已经使用的设置)。
如果您希望url
设置可供所有模块使用,您可以做的一件事就是创建一个仅导出其配置的模块。例如,如果我将此模块称为global
:
require.config({
config: {
global: {
url: 'http://test.herokuapp.com'
}
}
});
然后global.js
可能包含以下内容:
define(function(require, exports, module) {
'use strict';
return module.config();
});
然后你问题中的模块可能是这样的:
define(function(require, exports, module) {
'use strict';
var global = require("global");
var Backbone = require('backbone');
var url = global.url;
var SessionModel = Backbone.Model.extend({
url: url + '/login'
});
return SessionModel;
});