Vue2.x与bootsrap-table动态添加元素和绑定事件无效

      最近在使用vue与bootstrap-table结合生成表格时,按以前的经验----每列数据可用formatter:function(value,row,index){}进行一些其他的操作,动态拼接的html元素和绑定的方法事件都可正常执行,但在vue内使用后,拼接的元素显示正常,其绑定的方法却失效了。F12查看元素时发现绑定的@click=""被解析成字符串。

 二、原因: 

    这是由于vue的生命周期导致的,vue在初始化时@click已编译,但此时boostrap-table动态添加的dom元素还未加载进来。导致@click并未绑定到dom元素上,被解析成字符串。

 

 三、解决方案:

    能不能在boostrap-table随vue一起初始化时,把动态添加dom元素同时挂载到vue实例,使得table和动态dom同时初始挂载

  使用Vue操作解决方案:

       ① 创建组件

  

var toolsComponent = Vue.extend({ props:['id','isOpen','url','hostUrl'], template: `<div > <button class="btn btn-danger btn-sm" @click="remove(id,url)">删除</button> <button :class="isOpen == true ? 'btn btn-success btn-sm': 'btn btn-warning btn-sm' " @click="changeOpen(id,isOpen)" >{{isOpen == "true" ? "启用" : "停用"}}</button> <a class="btn btn-primary btn-sm" :href="hostUrl + '/getNews/' +url " target="_blank">查看</a> </div> `, methods:{ changeOpen(newsId,openParam){} remove(id,url){} } })

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypwsw.html