在index.html页面里加入<script src="Scripts/require.js" data-main="Scripts/main"></script>后便可在主模块main.js里写内容了。 1. 不需要依赖其他模块时,我们可以直接写入JavaScript代码,如: alert("加载主模块成功"); //不依赖其他模块,也就不必用require.js加载了 2. 需要依赖其他模块时,就要使用AMD规范定义的的require()函数: require(['test1', 'test2'], function (){ //这里可以调用test1.js、test2.js里定的js方法 }); require()函数接受两个参数。第一个参数是一个数组,表示所依赖的模块,上例就是['test1', 'test2'],即主模块依赖这两个模块; 第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数(testa,testb)形式传入该函数,从而在回调函数内部就可以使用这些模块。 require()异步加载test1,test2,浏览器不会失去响应;它指定的回调函数,只有前面的模块都加载成功后,才会运行。 test1.js与test2.js都与main.js在同一目录(文件夹)中,加载完成后,相当于test1.js与test2.js的所有代码都放在main.js里了。 3. 使用require.config()自定义模块加载: require.config()须写在main.js的顶部,里面的参数是一个json对象。先举个例子吧: require.config({ baseUrl: "", paths:{ "t1" : "test1", //此时test1.js与main.js在同一目录中 "t2" : "test2"//冒号前面是别名,后面是js文件所在路径,如果在其他主机上,可写入网址 } }); 如果test1.js不在main.js同一目录,有两种写法: require.config({ baseUrl: "js", paths:{ "t1" : "test1", //此时test1.js在js目录中 "t2" : "test2" } }); require.config({ paths:{ "t1" : "js/test1", //此时test1.js在js目录中 "t2" : "js/test2" } }); 然后就可以加载模块了: require(['t1', 't2'], function (){ //这里可以调用test1.js、test2.js里定义的js方法 }); 4. require.config()里的对象还有shim属性,用于加载非规范的模块(即不按照AMD规范也不用define函数定义模块的js文件) require.config({
baseUrl: 'Scripts',
paths: { 't1': 'test1',
't2': 'test2', 'angular':'angular.min'
},
shim: {
//deps数组表明t1模块要依赖的其他模块,这里需要依赖paths里配置的angular模块。 //exports的属性值是名为t的全局变量,在t1模块外部调用该模块时,就用该名字。 //也可以't1':['angular']这种方式配置,直接给出依赖模块,外部调用名字就用t1 't1' : { deps:['angular'], exports: 't' } }
}); |
|
来自: 昵称33008491 > 《AngularJS框架的搭建》