【转载】vue中v-for循环出来的元素绑定的不同事件

原文:vue中v-for循环出来的元素绑定的不同事件(亲测,好用😁)

   <div style="padding: 0 5px;" @click="handler(item.fun)" v-for="(item, index) in iconData" :key="index">
    <i class="iconfont  iconHover" :class="item.icon" :title="item.title"></i>
   </div>

刚开始我在循环出来的元素中加@click="item.fun",出现了handler.apply is not a function的错误。然后网上查了一下,可以通过一个方法间接调用来实现。

      iconData: [
        { icon: 'iconquanxuan', title: '全选', fun: 'checkAll' },
        { icon: 'iconfanxuan', title: '反选', fun: 'toggleAll' },
        { icon: 'iconzhongzhi', title: '重置', fun: 'cancleAll' }
      ]
    handler(fun) {
      this[fun]()
    },
    checkAll() {
      this.checkedList = [...this.Options]
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAllOff()
    },
    cancleAll() {
      this.checkedList = []
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAllOn()
    },
    toggleAll() {
      //反选
      this.checkedList = this.Options.filter(a => this.checkedList.indexOf(a) === -1)
      viewer.bimAdmin.tools['Bim.TilesetModelList'].toggleAll()
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。