同一项目不同页面,需加载不同的页面,如何针对不同的html,require不同的js文件,我的想法是每个页面都define成一个模块,根据页面标识,来requrie相应的模块
如目录下
index.html => index.js
detail.html => detail.js
search.html=> search.html
-
首先我们在页面的body标签上做一个标识,data-mark = 'index'
-
这样我们就能通过$('body').data('mark')获取到模块名。
example
//index.js
define(function(){
return {
init: function(){
console.log(1)
}
}
});
//main.js
require(['jquery'],function($){
var moduleName = $('body').data('mark');
//根据moduleName执行对应的模块
require([moduleName],function(m){
m.init() //输出1
})
})
注意modelname必须在require.config中进行配置
将获取标识的这段代码再封装一下
//mark.js
define(function(){
return $('body').data('mark')
}
});
//main.js
require(['jquery','mark'],function($,mark){
//根据moduleName执行对应的模块
require([mark],function(m){
m.init() //输出1
})
})
继续封装一下呢?
网友评论