这个数据调用url从数据里面获取到的,字段对应不上。在js文件里面怎么修改呢?
Closed this issue · 2 comments
[{
"areaname": "长沙市",
"hnAreaInfoList": [{
"id": 15,
"areaname": "岳麓区"
}, {
"id": 16,
"areaname": "芙蓉区"
}, {
"id": 17,
"areaname": "天心区"
}, {
"id": 18,
"areaname": "开福区"
}, {
"id": 19,
"areaname": "雨花区"
}, {
"id": 20,
"areaname": "望城区"
}, {
"id": 21,
"areaname": "长沙县"
}, {
"id": 22,
"areaname": "浏阳市"
}, {
"id": 23,
"areaname": "宁乡市"
}],
"id": 1
}, {
"areaname": "株洲市",
"hnAreaInfoList": [{
"id": 24,
"areaname": "天元区"
}, {
"id": 25,
"areaname": "荷塘区"
}, {
"id": 26
}, {
"id": 27,
"areaname": "石峰区"
}, {
"id": 28,
"areaname": "醴陵市"
}, {
"id": 29,
"areaname": "株洲县"
}, {
"id": 30,
"areaname": "炎陵县"
}, {
"id": 31,
"areaname": "茶陵县"
}, {
"id": 32,
"areaname": "攸县"
}],
"id": 2
}]
var json= [{
"areaname": "长沙市",
"hnAreaInfoList": [{
"id": 15,
"areaname": "岳麓区"
}, {
"id": 16,
"areaname": "芙蓉区"
}, {
"id": 17,
"areaname": "天心区"
}, {
"id": 18,
"areaname": "开福区"
}, {
"id": 19,
"areaname": "雨花区"
}, {
"id": 20,
"areaname": "望城区"
}, {
"id": 21,
"areaname": "长沙县"
}, {
"id": 22,
"areaname": "浏阳市"
}, {
"id": 23,
"areaname": "宁乡市"
}],
"id": 1
}, {
"areaname": "株洲市",
"hnAreaInfoList": [{
"id": 24,
"areaname": "天元区"
}, {
"id": 25,
"areaname": "荷塘区"
}, {
"id": 26,
"areaname": "lalal缺少了"
}, {
"id": 27,
"areaname": "石峰区"
}, {
"id": 28,
"areaname": "醴陵市"
}, {
"id": 29,
"areaname": "株洲县"
}, {
"id": 30,
"areaname": "炎陵县"
}, {
"id": 31,
"areaname": "茶陵县"
}, {
"id": 32,
"areaname": "攸县"
}],
"id": 2
}];
for (var i = 0; i < json.length; i++) {
for (var j = 0; j < json[i].hnAreaInfoList.length; j++) {
changeJsonKey(json[i].hnAreaInfoList[j]);
}
changeJsonKey(json[i],true);
}
//改变json的name,插件默认的是child和name
function changeJsonKey(json,hasChild){
json.name = json.areaname;
delete json.areaname;
json.value = json.id;
delete json.id;
if(hasChild){
json.child = json.hnAreaInfoList;
delete json.hnAreaInfoList;
}
}
/**
* 联动的picker
*/
$('.select-value').mPicker({
level: 2,
dataJson: json,
Linkage: true,
rows: 6,
idDefault: true,
splitStr: '-',
header: '<div class="mPicker-header">两级联动选择插件</div>',
confirm: function () {
//无value的情况
console.info($('.select-value').data('value1') + '-' + $('.select-value').data('value2'));
},
cancel: function () {
console.info($('.select-value').data('value1') + '-' + $('.select-value').data('value2'));
}
})
你可以先这样改,我找个时间加一下动态设置name值的
你好 我更新了版本 最新版可以动态改变name值,调用方法如下:
$('.select-value').mPicker({
level: 2,
dataJson: json,
Linkage: true,
rows: 6,
idDefault: true,
splitStr: '-',
jsonName: 'areaname',
jsonChild: 'hnAreaInfoList',
jsonValue: 'id',
header: '<div class="mPicker-header">两级联动选择插件</div>',
confirm: function () {
//无value的情况
console.info($('.select-value').data('value1') + '-' + $('.select-value').data('value2'));
},
cancel: function () {
console.info($('.select-value').data('value1') + '-' + $('.select-value').data('value2'));
}
})
});
另外,你上面的json本身有一个缺少name的,格式不对,也会导致报错。请检查json完整性