我为sample-project的latest-release下载了RequireJS
。他们的documentation implies任何加载的都被传递到相关函数的参数列表中(按相应的顺序)。
所以我决定尝试一下......但它似乎不起作用!
Firebug
(网络标签)显示正在加载jQuery
:所以RequireJS
obvioulsy成功完成了该部分Firebug
(控制台选项卡)显示'$不是函数'我的问题是:为什么不填充别名?
我的代码看起来像:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/require.js" type="text/javascript"></script>
<script type="text/javascript">
require(["scripts/jQuery/Core/jquery-1.7.2.min"], function ($) {
// jQuery is not passed-into the function, so the alias fails!
$(function () {
var stop = "";
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
他们的样本看起来像:
//Inside scripts/main.js
require(["some/module", "a.js", "b.js"], function(someModule) {
//...
});
答案 0 :(得分:16)
// create an alias that points to proper file
require.config({
paths : {
jquery : "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min"
}
});
// require jquery usign the path config
require(["jquery"], function ($) {
console.log($);
});
这就是为什么命名的define被认为是反模式的主要原因,应该只在需要时使用(当你在同一个文件中有多个模块时)。
答案 1 :(得分:2)
请务必阅读RequireJS + jQuery示例项目的“README.md”。使用jQuery有很多复杂因素,您需要在初始设置期间决定如何最好地为项目解决问题。一旦你弄清楚什么对你最好并实现它,它应该不再是一个问题。
很多复杂因素也来自jQuery不是真正的AMD模块这一事实,如果它检测到定义函数可用,它们只是在代码库中进行定义以进行定义。例如,这意味着jQuery模块名称将始终为“jquery”(请注意小写的“q”),除非您自己将其包装,因此如果您在配置中为其定义路径,则必须具有名为“jquery”的键(再次,小写'q')或将出现不匹配。首先在我们的项目上设置RequireJS(我们将关键字命名为“jQuery”),这就是我们的一点。
答案 2 :(得分:0)
您的脚本文件夹是“脚本”还是“脚本”?
您正在请求“Scripts / require.js”以及“scripts / jQuery / Core / jquery-1.7.2.min”。看看Firebug的Net标签......我敢打赌你在那里生成404。