项目: 《portal 页》
时间: 2018 年 5 月 23 日
问题: 使用 axios post 方式请求接口时,发送的数据是 json 形式
分析: 应使用健值对形式发送数据,可使用 transformRequest 或者 qs 库处理代码:
axios({
method: "post" ,
url: registerUrl,
data: registerInfo,
transformRequest: [
function (data) {
let ret = "" ;
for (let it in data) {
ret +=
encodeURIComponent (it) +
"=" +
encodeURIComponent (data[it]) +
"&" ;
}
return ret;
}
]
})
项目:《portal 页》
问题:项目中引用element-ui 之后提示错误“Injection "elFormItem" not found ”
分析:百度搜索后发现可能是vue和element-ui 的版本号对不上,把vue、vue-template 、element-ui 都升级到最新版本就可以了
问题:为element-ui的tooltip提示文字加点击事件不成功
场景:使用content来决定hover时的提示信息时,点击事件不成功,因为不可以为属性写事件,但使用slot插槽可以实现,因为slot插槽是真正插入了一个dom元素
代码:
// 使用content属性:
<el-tooltip class ="item" effect ="dark" content ="Top Left 提示文字" placement ="top-start" >
<el-button > 上左</el-button >
</el-tooltip >
// 使用slot插槽
<el-tooltip placement ="top" >
<div slot ="content" @click ="handleClick" > 多行信息<br /> 第二行信息</div >
<el-button > Top center</el-button >
</el-tooltip >
ehcarts 数据图重新加载后数据合并
项目:《云乐道后台-数据统计分析》
问题:页面加载时先显示了一部分数据,筛选后再重载数据图原来的数据也在
分析:echarts默认会合并数据
解决办法: chart.setOption(option, true )
chart.setOption(option, notMerge, lazyUpdate)
option:图表的配置项和数据,具体见配置项手册。
notMerge:可选,是否不跟之前设置的option进行合并,默认为false ,即合并。
lazyUpdate:可选,在设置完option后是否不立即更新图表,默认为false ,即立即更新。
silent:可选,阻止调用 setOption 时抛出事件,默认为false ,即抛出事件。
float 型数据相加后结果有误差
项目:《os数据统计》
问题:float型数据相加后结果会有一些误差
分析:因为js计算精度的问题,浮点型数据相加减都会有误差
解决办法:定义一个变量,存放每次相加产生的误差,在上一次结果和这一项相加之前先减去上次产生的误差,再相加就是没有误差的结果,之后再将此次相加产生的误差赋值给c
代码:
function arrSum (list) {
var len = list.length
var res = 0.0
var c = 0.0
for (var i = 0 ; i < len; i++) {
var y = list[i] - c
var t = res + y
c = (t - res) -y
res = t
}
return res
}
切换选项卡后需要重新加载 echarts
项目:《os数据统计》
问题:切换选项卡后,只有默认显示的那个选项卡页面有图表,其他切换后都没有
解决办法: 切换选项卡后需要重新加载echarts
代码:
$('#tab input' ).click(function () {
var index = $("#tab input" ).index(this )
$(this ).addClass("active obtn btn-lg" ).siblings().removeClass("active obtn btn-lg" )
$(".tab-content>div" ).eq(index).addClass("select" ).siblings().removeClass("select" )
pubChart.resize()
areaChart.resize()
overYearsChart.resize()
})
城市区域等数据是 ajax 来的,所以给这些数据写事件要放到渲染函数中,渲染完成后再执行,因为异步
项目:《os数据统计》
问题:为页面ajax请求回来渲染的数据元素写事件不起作用,sources里查看元素是undefined
分析:页面数据是ajax异步请求回来的,所以在执行事件的时候还没有成功渲染元素
解决办法: 把相应事件写在渲染函数中
点击子元素会触发父元素事件,为子元素写阻止冒泡方法
项目:《portal页》
场景:为弹出遮罩层写事件,当点击遮罩层空白处时遮罩层消失,但点击遮罩层上的表单不消失
问题:当点击遮罩层上的表单时,遮罩层也会消失,
分析:这是因为子元素会为遮罩层写消失事件时会触发冒泡事件,所以要为子元素写阻止冒泡方法
解决方法:
stopBubble(e) {
e.stopPropagation();
},
alert()一个拼接字符串结果是 NaN
项目:《portal页》
问题:alert一个拼接字符串 alert('请输入正确的手机号或带区号的电话号码!区号和电话号码之间可无连接符或用' -'连接' ) 结果是NaN
分析:alert内外层字符串与内层字符串同使用单引号引用,导致js从'-' 处解析,将'-' 前边的视为一个字符,减号后边的视为一个字符,将'-' 视为减号,所以结果才会是NaN
解决办法:内层字符串与外层字符串不要相同
alert("请输入正确的手机号或带区号的电话号码!区号和电话号码之间可无连接符或用'-'连接" )
jquery寻找父元素及父级元素
项目:《os数据统计》
问题:使用parent 寻找元素的非直接父元素找不到
分析:parent 是寻找元素的直接父元素,寻找元素的非直接父元素使用Parents
jquery为追加元素添加事件
项目:《os数据统计》
问题:为append方法添加进去的元素写事件,有的时候没有响应,有的时候只响应一次
分析:jquery动态添加的元素要使用on进行绑定,但监听的时候不能监听动态的,要监听静态元素(动态元素的父元素,body等)
解决办法:
$('body' ).on('click' , element, function () {
})
设置单元格宽度不起作用
项目:《os数据统计》
问题:在td中使用width设置table的单元格宽度不起作用
分析:表格默认布局为自动布局,在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。
解决办法:为table设置 table-layout属性为fixed;
<table table-layout ="fixed" > </table >