Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Require.js有些不清楚的地方_Javascript_Backbone.js_Require - Fatal编程技术网

Javascript Require.js有些不清楚的地方

Javascript Require.js有些不清楚的地方,javascript,backbone.js,require,Javascript,Backbone.js,Require,我试图使用和加载外部供应商js,并隐藏全局变量,如主干或下划线 这是我的密码: <script data-main="./main" src="<?php echo $rootRequirejs?>/require.js"></script> <script type="text/javascript"> require.config({ baseUrl: "/web/js", paths: {

我试图使用和加载外部供应商js,并隐藏全局变量,如主干或下划线

这是我的密码:

<script data-main="./main" src="<?php echo $rootRequirejs?>/require.js"></script>
<script type="text/javascript">
    require.config({
        baseUrl: "/web/js",
        paths: {
            "jquery": "/vendor/js/jquery-1.7.1.min",
            'underscore': '/vendor/js/underscore-min',
            'backbone': '/vendor/js/backbone-min'
        }
    });

您可以使用包装在amd模块中的那些库的amd版本,这应该避免使用全局变量:

它们由《RequireJS》的作者詹姆斯·伯克(James Burke)维护


希望这能解决你的问题

您可以使用包装到amd模块中的那些库的amd版本,这应该避免使用全局变量:

它们由《RequireJS》的作者詹姆斯·伯克(James Burke)维护


希望这能解决你的问题

由于库本身(主干网等)的编写方式,默认情况下这些将是全局的-它们显式地使用全局空间(b/c,js就是这样工作的)。你试过这些LIB吗

也许Florian在上面的评论中提到的一个更好的选择是使用Require2.0,因为它现在附带了一个可以帮助您处理非AMD LIB的。。。虽然我不确定这是否会消除全球变暖


fwiw,除非您有特定的理由避免使用全局变量,否则它们通常不会有什么大不了的。

由于库本身(主干等)的编写方式,它们默认为全局变量-它们明确使用全局空间(b/c,js就是这样工作的)。你试过这些LIB吗

也许Florian在上面的评论中提到的一个更好的选择是使用Require2.0,因为它现在附带了一个可以帮助您处理非AMD LIB的。。。虽然我不确定这是否会消除全球变暖


fwiw,除非你有特定的理由避免使用global,否则它们通常没有什么大不了的。

关于global,它们仍然是全局的,除非你对它们使用
noConflict()
方法。IIRC,require.js允许您为这些依赖项定义一个函数,因此您可以返回类似于
Backbone.noConflict()
。顺便问一下,您看到了吗?它解决了你的问题。再看看“升级require.js”指南,你会看到很多有用的东西。你是如何加载你的moudules的?你可以发布main.js来查看依赖项是如何声明的吗?@GabrielJürgens我确实解决了这个问题。实际上,关于全局变量,我只有一个问题。noConflict()不能解决我的问题。“我的意思是主干是全球性的。”弗洛里安·马加因。我确实解决了这个问题。实际上,关于全局变量,我只有一个问题。noConflict()不能解决我的问题。我的意思是主干是全局的。关于全局,它们仍然是全局的,直到您对它们使用
noConflict()
方法。IIRC,require.js允许您为这些依赖项定义一个函数,因此您可以返回类似于
Backbone.noConflict()
。顺便问一下,您看到了吗?它解决了你的问题。再看看“升级require.js”指南,你会看到很多有用的东西。你是如何加载你的moudules的?你可以发布main.js来查看依赖项是如何声明的吗?@GabrielJürgens我确实解决了这个问题。实际上,关于全局变量,我只有一个问题。noConflict()不能解决我的问题。“我的意思是主干是全球性的。”弗洛里安·马加因。我确实解决了这个问题。实际上,关于全局变量,我只有一个问题。noConflict()不能解决我的问题。我的意思是主干是全局的。我正在尝试使用垫片功能,但是我可以告诉requirejs模块已经定义了吗?如果是,如何进行?对于eaxmple shim:{'jquery'}它在baseUrl中查找,但实际上它已经被loaaded。require不会尝试加载它已经加载的模块。如果您是使用require加载jquery,应该可以。如果您是通过require和standardscript标记加载jquery,那么页面中可能会有两个副本。我想如果你先加载jquery,require会看到它已经被加载(技术上定义为一个模块),而不会再次尝试加载它。我正在尝试使用shim特性,但我能告诉requirejs模块已经被定义了吗?如果是,如何进行?对于eaxmple shim:{'jquery'}它在baseUrl中查找,但实际上它已经被loaaded。require不会尝试加载它已经加载的模块。如果您是使用require加载jquery,应该可以。如果您是通过require和standardscript标记加载jquery,那么页面中可能会有两个副本。我认为,如果您首先加载jquery,您将看到它已经被加载(技术上“定义”为一个模块),而不会再次尝试加载它。