需求:
在地址列表中,通常会设置一个默认地址。
1.我们要保证设置地址1为默认地址后,再设置地址2为默认地址,地址1的默认要去掉。
2.默认地址要处于列表首位。
效果图:布局是element-plus
步骤:
add_address是每个地址对象,address_list是地址列表。
1.首先默认地址和设为默认不能在一个地址里同时出现,所以用v-if
和v-else
控制只显示一个。
<el-button>
<em class="Default" v-if="item.isDefault">默认地址</em>
<em v-else @click="setDefault(index)">设为默认</em>
</el-button>
2.要给默认地址一个标识符在地址对象里,在data的add_address里添加isDefault,初始值为空。并把它绑定在默认地址按钮。因为是值是空,所以不显示,显示v-else
3.点击设为默认,触发设置默认地址的函数 setDefault(index),给这个函数传索引参数。
4.setDefault函数内部遍历地址数组,找到该索引下的地址对象,把它的isDefault设置为索引值。
遍历结束后,把设为默认地址的对象移到列表首位,方法就是先删除此对象,再在首位添加。
this.address_list.splice(0, 0