1

clipboard.png
比如上面这种需求,每个拒绝按钮都需要有一个对应的小Modal组件。目前我是在每个Item组件里都设置了一个Modal

// Item.js
<li>
  <Modal v-if="isShow">
</li>

但是我觉得没必要每个"拒绝"按钮都生成单独的Modal.因为同时只会存在一个。但是问题是如果把这个Modal放在List(Item组件的父组件)组件中,那我应该如何控制这个Modal的定位呢(点击某个拒绝按钮,就出现在对应的地方)?

2018-12-07 提问

查看全部 3 个回答

0
data: {
    return {
     modelPotion: {
         left: 0,
         top: 0,
     }
     activeModelIndex: false,
     curItem: ''
    }
}

<li>
  <span>通过</span>
  <span @click="handleRefuse($event,item)">拒绝</span>
</li>

// 一个就够了
<Modal v-if="activeModelIndex" :item="curItem" :style="{ left: `${modelPotion.left}px`,top: `${modelPotion.top}px`}">


handleRefuse(event,item){
    console.log(event) //可以拿到当前坐标
    this.modelPotion = {
        left: event.x
        top: event.y
    }
    this.activeModelIndex = true
    this.curItem = item
}

你可能感兴趣的

推广链接