mint-ui Picker设置指定初始值

 

最近作的项目公司需求是信息输入页设置地址跳转下一页后,再返回信息输入页查看信息时,地址要默认显示前面选择的地址,以此记录下,须要小伙伴能够看看html

 

 data{return{}}中设置   :slotsvue

 在mounted中设置this.$nextTick(将回调延迟到下次 DOM 更新循环以后执行。在修改数据以后当即使用它,而后等待 DOM 更新。),而后从session中拿到前面选择的地址,数组

拿到省,Object.keys()会返回一个数组,当前省的数组,经过for循环找到这个省的序号,而后经过that.myAddressSlots[2].defaultIndex = i;便可设置以前选择的省session

 

而后地址值改变就会触发绑定的change事件,change 事件有两个参数,分别为当前 picker 的 vue 实例和各 slot 被选中的值组成的数组values,而后经过在 change 事件中,能够使用注册到 picker 实例上的一些方法(文档有说明):this

  • setSlotValues(index, values):设定给定 slot 的备选值数组
values[0]为省,
values[1]为市
values[2]为区

经过setSlotValues设置市级备选值数组和区级备选值数组,picker.setSlotValues(1,Object.keys(myaddress[values[0]]));picker.setSlotValues(2,myaddress[values[0]][values[1]]);spa

  • setSlotValue(index, value):设定给定 slot 被选中的值,该值必须存在于该 slot 的备选值数组中

经过setSlotValue设置指定的市/区值,picker.setSlotValue(1,that.myAddressCity);picker.setSlotValue(2,that.myAddresscounty);即以前选择的市/区,这里其实也能够继续用defaultIndex来设置的,只是要for循环拿到市/区在备选值数组中的序号.net

that.myAddressSlots[2].defaultIndex = i;

 

总结下就是能够经过传入 :slots="myAddressSlots",myAddressSlots的values传入备选值数组或者经过setSlotValues设置备选值数组,而后经过defaultIndex来设置指定值或者经过setSlotValue(index, value)来设置指定值。code

网上也有不少方法能够参考:http://www.cnblogs.com/zpxm/p/8670960.html   https://blog.csdn.net/SnowBeatRain/article/details/84646681htm

如此就能够去用好这组件了,固然看源码市了解最透彻的,若是有时间的话。blog

相关文章
相关标签/搜索