201805问题总结

axios 提交数据前使用 transformRequest 或 qs 处理

项目: 《portal 页》
时间: 2018523 日
问题: 使用 axios post 方式请求接口时,发送的数据是 json 形式
分析: 应使用健值对形式发送数据,可使用 transformRequest 或者 qs 库处理代码:

axios({
  method: "post",
  url: registerUrl,
  data: registerInfo,
  transformRequest: [
    function(data) {
      // Do whatever you want to transform the data
      let ret = "";
      for (let it in data) {
        ret +=
          encodeURIComponent(it) +
          "=" +
          encodeURIComponent(data[it]) +
          "&";
      }
      return ret;
    }
  ]
})

Injection “elFormItem” not found

项目:《portal页》
问题:项目中引用element-ui之后提示错误“Injection "elFormItem" not found ”
分析:百度搜索后发现可能是vue和element-ui的版本号对不上,把vue、vue-template、element-ui都升级到最新版本就可以了

element-ui 的 tooltip 为提示文字添加事件

问题:为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
    // 定义c为浮点数相加产生的误差
    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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值