求助!requeirjs到底怎么用啊?

berg369 2015-05-19 05:36:07
我们大部分js是基于jquery的,原来的做法是把jquery、jquery-ui等常用js都在inclide页面全部引入,具体页面根据需要再引入其它的。造成页面过大,想用requirejs改进一下。
我的目的:
1、每个页面可默认引入jquery,其它的js文件视需要在html页面中引入
2、在页面引入时能够直接写模块名,不带版本号等
3、可以正常使用第三方jquery插件
但是我怎么也做不出来,求助大家!照着网上的例子写了代码如下:

app.js

require.config({
baseUrl: './resource/js',
shim: {
'jquery.validate': ['jquery'],
"jquery.cookie" : ["jquery"]
},
paths: {
jquery: 'jquery-1.11.3.min',
'jquery.validate':'jquery.validate.min',
'jquery-ui':'jquery-ui.min'
}
});

注意上面的paths中,我希望在这里配置具体的文件版本号,引入时能够直接写模块名不带.min及1.11.3.min的方式,但不行!
首页index.html:

<!-- 引入require.js和入口文件 -->
<script src="./resource/js/require.js" data-main="./resource/js/app"></script>
<script>
requirejs(['jquery-1.11.3.min','jquery-ui.min','jquery.cookie','jquery.validate.min'],function ($) {
$(function() {
<!-- 这里执行js方法 -->
$( "#dialog-message" ).dialog({
modal: true,
width:300,
height:180,
autoOpen: false
});
......
});
});
</script>

上面的代码中,引入jquery、jquery-ui和jquery.validate时,仍然写了完整的文件名,才能获取到。可以执行代码。但是报许多错误:
Uncaught ReferenceError: jQuery is not defined jquery.cookie.js 25
Uncaught ReferenceError: $ is not defined jquery.validate.min 1
Uncaught TypeError: undefined is not a function index.html 74 (即$( "#dialog-message" ).dialog({这一行)
另外,在页面引入时,用的是requirejs,有些例子是用require或define,改为require可以用,但改为define就报错:
Uncaught Error: Mismatched anonymous define() module: function ($) {
...
我真被这些概念搞晕了!看了requirejs官网上的说明,还是搞不明白,请指教,感谢!
...全文
289 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomihaohao 2015-05-20
  • 打赏
  • 举报
回复

requirejs(['jquery','jquery-ui','jquery.cookie','jquery.validate'],function ($,b,c,d) {
    $(function() {
       <!-- 这里执行js方法 -->
      $( "#dialog-message" ).dialog({
          modal: true,
          width:300,
          height:180,
          autoOpen: false
     });
        ......
    });
});
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 ImageStitching 图像矩阵实现,图片拼接、缩放、旋转等工能 一、前文 之前有个朋友委托我实现一个图片拼接的组件,感觉挺有意思,于是周末花了些时间去研究了下,其实拼接这一步并不难,但是我在研究中发现了Matrix这个东西,非常好的东西。 为此,我竟然拾起了多年没有动过的线性代数。 二、原理 要彻底搞懂matrix还是需要一定的线性代数上面的理解,不过对于基本使用,了解到矩阵乘法就足够了。 在android坐标系中,分为x、y和z三个轴,分别代表了长、宽、高三个维度。 如下图所示 android坐标系 在android中,使用三维坐标(x,y,z)组成一个行列式与一个三阶行列式进行矩阵乘法。 矩阵乘法 图中显示的使用初始坐标组成的矩阵与单位矩阵进行矩阵乘法。 矩阵乘法使用可以参考矩阵乘法) Martix会把输入进来的矩阵带入到其内部的矩阵中进行计算,最终输出新的矩阵,来达到对图形形态的处理。 三、基本方法的使用 Matrix提供的基本方法有三种模式, setXXX()方法,例如 setRotate(),setScale() preXXX()方法,例如 preRotate(),preScale() postXXX()方法,例如 postRotate(),postScale() 其中,setXXX()会先将矩阵重置为单位矩阵,然后再进行矩阵变幻 preXXX()和postXXX()方法会牵扯到矩阵的前乘和后乘,如果了解了矩阵乘法规则,就会明白矩阵前乘和后乘得出来的结果是不一样的,不过一般情况下都会选择使用post方法,后乘。 其中还有扩展方法比如: mapRect(rect) /...

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧