1、util模块与其他模块的区别
此模块是公共模块在不同的场景下被应用:普通引用场景和异步加载场景;这样导致我们在异步加载时,把他临时改造成amd格式;普通引用方式直接引入即可。
页面需要传递window参数到模块中
(1)模块定义
(function(window) {
var util = {};
util.tomedia = function(src, forcelocal){
if(src.indexOf('http://') == 0 || src.indexOf('https://') == 0 || src.indexOf('./resource') == 0) {
return src;
} else if(src.indexOf('./addons') == 0) {
var url=window.document.location.href;
var pathName = window.document.location.pathname;
var pos = url.indexOf(pathName);
var host = url.substring(0,pos);
if (src.substr(0,1)=='.') { src=src.substr(1); }
return host + src;
} else {
if(!forcelocal) { return window.sysinfo.attachurl + src; } else { return window.sysinfo.attachurl_local + src; }
}
};
if (typeof define === "function" && define.amd) {
define(['bootstrap'], function(){ return util; });
} else {
window.util = util;
}
})(window);
(2)模块加载
require(['util'],function(util){
$('.mutdelete').click(function(){
var url = $(this).data('href');
var ids = [];
var idss = [];
$('input:checkbox[name="ids[]"]').each(function() {
var _that = $(this)[0];
if(_that.checked){
ids = ids.concat($(this).val());
}else{
idss = idss.concat($(this).val());
}
});
......
2、其他模块:独立第三方模块(不需要传入参数)
(1)模块定义(以trade.js为例)
define(['bootstrap'], function($){
var trade = {};
var reg_credit = /^[+-]?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/i;
var reg_int = /^[0-9]\d*$/i;
trade.init = function() {
$('.modal-trade-credit1, .modal-trade-credit2, .modal-trade-consume, .modal-trade-card, .modal-trade-cardsn, .modal-trade-cardconsume').on('click', function(){
$('#consume-Modal, #credit-Modal, #card-Modal, #card-edit-Modal, #group-Modal, #cardconsume-Modal').remove();
var type = $(this).data('type');
var uid = parseInt($(this).data('uid'));
if(type == 'consume') {
trade.consume(uid);
} else if (type == 'credit1' || type == 'credit2') {
trade.credit(type, uid);
} else if (type == 'card') {
trade.card(uid);
} else if (type == 'cardsn') {
trade.card_edit(uid);
} else if (type == 'cardconsume') {
trade.cardconsume();
}
});
};
......
return trade;
});
(2)模块加载
require(['trade'],function(trade){......