在应用程序中,我需要有一些配置变量是全局的,我在模块中使用它们。 我的配置文件可能看起来像。
config.js :
var config = {
baseServiceUrl: 'http://localhost/baseServiceUrl',
baseUrl: 'http://localhost/baseUrl',
mapping_764: {
location:'Austin',
emailAddress:'austin@customerservice.com',
registerLink:'https://www.customercare.com/en/austin/registration/',
fbLikeLink:'https://www.facebook.com/customercare.austin',
microSite: 'http://austin.customercare.com/'
}
}
我只是使用脚本标记和requirejs加载此文件
<script src="js/app/config.js"></script>
<script data-main="js/main" src="js/libs/require/require.js"></script>
现在,全局变量(对象) config 可以在所有模块中使用,也可以在浏览器控制台中使用。所以我在想如果有人更改了这个配置属性,应用程序肯定会崩溃,因为这个配置变量用于服务调用和许多其他事情。
有没有办法处理这类问题。?
答案 0 :(得分:5)
有几件事可能会对你有所帮助:
首先,对于纯“站点配置”(例如REST URL)信息,RequireJS具有配置API。来自the documentation:
requirejs.config({
config: {
'bar': {
size: 'large'
},
'baz': {
color: 'blue'
}
}
});
//bar.js, which uses simplified CJS wrapping:
//http://requirejs.org/docs/whyamd.html#sugar
define(function (require, exports, module) {
//Will be the value 'large'
var size = module.config().size;
});
如果您不想使用配置API,还有this question解决了传递全局变量的一般情况。
其次,为了将数据引导到Backbone模型,在this question
中进行了广泛的讨论