Javascript 如何避免Durandal 2中的全局变量
据我所知,Durandal 2.x假定没有全局库。以下是从文档中截取的用于定义全局模块的代码:Javascript 如何避免Durandal 2中的全局变量,javascript,jquery,requirejs,durandal,Javascript,Jquery,Requirejs,Durandal,据我所知,Durandal 2.x假定没有全局库。以下是从文档中截取的用于定义全局模块的代码: define('jquery', function () { return jQuery; }); define('knockout', function () { return ko; }); 如果我理解的目的是正确的,那么这些依赖项应该以下一种方式在模块中使用: define(['jquery', 'ko'], function (jquery, ko) { debug
define('jquery', function () { return jQuery; });
define('knockout', function () { return ko; });
如果我理解的目的是正确的,那么这些依赖项应该以下一种方式在模块中使用:
define(['jquery', 'ko'],
function (jquery, ko) {
debugger;
});
但这些依赖项
(jquery,ko)
都没有在模块的范围内定义。您能帮我找出我在这里遗漏了什么吗?有两种方法可以在Durandal中加载knockout和jQuery(以及其他第三方LIB)
通过脚本标记
e、 g
这一次,在您自己的模块中,您必须声明'knockout'和'jquery'为依赖项(如果您使用它们),否则requirejs将抛出错误
<script type="text/javascript" src="~/Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="~/Scripts/knockout-2.3.0.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.js"></script>
<script src="lib/require/require.js" data-main="app/main"></script>
requirejs.config({
paths: {
'text': '../lib/require/text',
'durandal':'../lib/durandal/js',
'plugins' : '../lib/durandal/js/plugins',
'transitions' : '../lib/durandal/js/transitions',
'knockout': '../lib/knockout/knockout-2.3.0',
'bootstrap': '../lib/bootstrap/js/bootstrap',
'jquery': '../lib/jquery/jquery-1.9.1'
},
shim: {
'bootstrap': {
deps: ['jquery'],
exports: 'jQuery'
}
}
});