使用AMD Requirejs + Backbonejs时处理全局变量
Handling global varibales when using AMD Requirejs + Backbonejs
在应用程序中,我需要有一些配置的变量是全局的,我跨模块使用它们。我的配置文件可能看起来像。
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/'
}
}
我只是加载这个文件使用脚本标签随着需求。<script src="js/app/config.js"></script>
<script data-main="js/main" src="js/libs/require/require.js"></script>
现在,全局变量(对象)config可以在所有模块中使用,也可以从浏览器控制台使用。所以我在想,如果有人改变了这个配置属性,应用程序肯定会崩溃,因为这个配置变量用于服务调用和许多其他事情。
以下几件事可能会对您有所帮助:
首先,对于纯"站点配置"(例如REST url)信息,RequireJS有一个配置API。来自文档:
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,还有一个问题,它解决了传递全局变量的一般情况。
第二,对于将数据引导到Backbone模型中,在这个问题上有广泛的讨论
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 什么's是处理多个js文件之间交互的简单方法,同时避免溢出全局变量
- 我应该如何处理Resharpers检查器提示'使用可能未分配的属性或全局变量'
- 使用事件处理程序(基本Javascript)时出现全局变量问题
- 在kineticjs中的处理程序函数中使用全局变量
- 事件处理程序之间的全局变量
- javascript图像处理仅在全局变量中
- 具有动态创建元素的事件处理程序的全局变量范围
- javascript垃圾收集器处理全局变量吗?
- 使用AMD Requirejs + Backbonejs时处理全局变量
- 不能访问jQuery事件处理程序中的全局变量
- Jquery处理全局变量
- 可以在事件处理程序中更改全局变量吗?
- 在JavaScript中如何处理带有破折号的ID'(自动创建全局变量)