在工作中遇到layui+jquery项目需要使用xmSelect进行改写select样式
编写两个请求接口的函数,请求同一接口,参数不同
function initSelectTemplateStatus() {
nebula.req({
url: baseServer + "xxx",
data: { type: 'template_status' },
async: false,
success: function (res) {
if (res.code === 200) {
let templateStatus = []; // 状态下拉框数据
res.data.map((item, index, array) => {
templateStatus.push({ "name": item.value, "value": item.code })
});
xmSelect.render({
el: '#status',
name: 'status',
data: templateStatus,
})
}
}
});
}
function initSelectTemplateType() {
nebula.req({
url: baseServer + "xxx",
data: { type: 'template_type' },
async: false,
success: function (res) {
if (res.code === 200) {
let templateType = []; // 模板类型下拉框数据
res.data.map((item, index, array) => {
templateType.push({ "name": item.value, "value": item.code })
});
// 模板类型 xmSelect
xmSelect.render({
el: '#templateType',
name: 'templateType',
data: templateType,
})
}
},
});
}
initSelectTemplateStatus(); //只有写在上面的生效
initSelectTemplateType(); // 请求不发送
分析问题:
浏览器不能在同一时间(目前发现是同一秒内)内对一样的接口进行请求,否则只生效第一个
解决方案:
将写在后面的接口地址上随意拼接get参数 比如?nihao=nihao
function initSelectTemplateType() {
nebula.req({
url: baseServer + "xxx?nihao=nihao",
data: { type: 'template_type' },
async: false,
success: function (res) {
if (res.code === 200) {
let templateType = []; // 模板类型下拉框数据
res.data.map((item, index, array) => {
templateType.push({ "name": item.value, "value": item.code })
});
// 模板类型 xmSelect
xmSelect.render({
el: '#templateType',
name: 'templateType',
data: templateType,
})
}
},
});
}