最近做项目碰到了一个dropdown的加载问题:根据layui的文档说明,dropdown功能允许在任何标签下加载下拉框,无论是动态还是静态。然而,在我尝试使用dropdown动态加载下拉框时遇到了一个问题:即尽管每次从接口请求获取的下拉内容都会变化,但页面上只显示首次请求获取的内容。
代码如下:
dropdown.render({
elem: '#id'
, data: datas
, show: true
, click: function (obj) {
this.elem.val(obj.title);
}
, style: 'width:210px;'
});
从官方文档翻到dropdown有个方法 官方文档
//完整重载
dropdown.reload(id, options)
但是直接使用后没有效果,研究了好久,我用这种方式解决了上面那个问题:
//先拿到dropdown.render对象
var dropdown = layui.dropdown;
var dpd = dropdown.render();
//然后用它去调reload方法,并将下拉框中的数据置为空
dpd.reload({
elem: '#id'
, data: []
});
//然后再重载新的数据进去就可以了
dpd.reload({
elem: '#id'
, data: datas
//, show: true
, click: function (obj) {
this.elem.val(obj.title);
}
});
有使用或者理解不对的地方,希望多指教