javascript - requireJS 中的全局变量

标签 javascript jquery requirejs

<分区>

Possible Duplicate:
How to load bootstrapped models in Backbone.js while using AMD (require.js)

这是一个关于我的问题的简单演示。

我需要访问main.js 文件中的id_user。我的问题是,在这种情况下如何避免使用全局变量?为此目的使用全局变量是不好的做法吗?

ma​​in.js

require({
    paths : {
        jQuery : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
    }
});

require([ 'jQuery' ], function() {
       alert(id_user);
    });

index.php

<script data-main="js/main" src="js/require.js"></script>

<script type="text/javascript">
function users() {
    id_user = <?php echo $id; ?>
}

users();
</script>

最佳答案

在使用 requirejs 的项目中不应该有任何全局变量用于处理模块,并且所有模块(及其属性/方法)永远不会全局声明以保持环境良好和干净。如果您需要一个模块使用另一个模块中的变量集,那么它们应该通过一些 API 相互通信或将该变量设置为属性,需要模块并以这种方式获取属性。

但也许你应该问问自己是否真的需要 requirejs。如果你想构建一个合适的基于模块的应用程序(如果你想知道如何传递变量,我不确定你是不是)那么是的,如果你想要的只是从 JS 加载几个文件然后 LazyLoad(http://www. appelsiini.net/projects/lazyload)可能就是答案。只是说值得考虑,具体取决于您的情况,特别是考虑到 requirejs 的足迹。

关于javascript - requireJS 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199622/

相关文章:

javascript - Mongoose 查找多个文档

javascript - 添加特定列后不显示 jQuery Datatable 列

javascript - 我如何动画一个单词,使每个字母改变颜色

javascript - 在requirejs中使用全局变量

javascript - 在Ember CLI构建的Ember JS中,如何调用不同 Controller 上的方法?

javascript - ES6 完整项目中的模块

javascript - 需要 jquery/javascript 弹出窗口脚本的帮助 - 在 Internet Explorer 中出现奇怪的错误

javascript - 根据用户区域设置过滤字符串列表

javascript - 如何使用javascript打印带有图像的表格?

javascript - requireJS 使用 require 加载文本