在2020年11月24日 pearadmin模板更新之后,我就更新了自己用的模板。但是在前端渲染的时候出现错误,导致纠结了一天时间。最后还是在 就眠仪式 的帮助下排除了错误。
下面是错误原因及排除
-
在index.html中,原pear.config.json中关于默认样式的代码如下
-
"theme": {
-
"defaultColor": "2",
-
"defaultMenu": "dark-theme",
-
"allowCustom": true
-
},
-
"colors": [{
-
"id": "1",
-
"color": "#FF5722"
-
},
-
{
-
"id": "2",
-
"color": "#5FB878"
-
},
-
{
-
"id": "3",
-
"color": "#1E9FFF"
-
}, {
-
"id": "4",
-
"color": "#FFB800"
-
}, {
-
"id": "5",
-
"color": "darkgray"
-
}
-
],
-
$data['theme']['defaultColor']='2';
-
$data['theme']['defaultMenu']="dark-theme";
-
$data['theme']['allowCustom']=true;
-
$data['colors'][0]=array('id'=>1,'color'=>"#FF5722");
-
$data['colors'][1]=array('id'=>2,'color'=>"#5FB878");
-
$data['colors'][2]=array('id'=>3,'color'=>"#1E9FFF");
-
$data['colors'][3]=array('id'=>4,'color'=>"#FFB800");
-
$data['colors'][4]=array('id'=>5,'color'=>"darkgray");
而我的PHP输出代码是
上面是原来输出json的代码
二者对比如下:
经过 就眠仪式 的分析发现 colors 的差异(第28行开始),我输出的json中colors元素中的id是数字(number),而原来json中colors元素中的id是字符(string)
在admin.js中364的getColorById(id)函数中,使用的是===,因为value.id和id类型不一样,所以没有符合条件的数据赋值给color,从而导致color变成 undefined
解决办法:将php代码中的
-
$data['colors'][0]=array('id'=>1,'color'=>"#FF5722");
修改为
-
$data['colors'][0]=array('id'=>'1','color'=>"#FF5722");
(将id的值有数字改为字符)
非常感谢 就眠仪式的帮助。强烈推荐 就眠仪式的开源项目
阅读(3659) | 评论(0) | 转发(1) |