941477276 / vue3-country-intl

基于vue3的国际化的国籍/手机区号组件!
30 stars 3 forks source link

绑定数据页面并不回显 #9

Closed leah0717 closed 1 year ago

leah0717 commented 1 year ago

<vue3-country-intl type="phone" :iso2="phoneObj.mobileAreaCode" v-model="phoneObj.mobileAreaCode"

当type为phone时,设置初始数值传入iso2并进行相应绑定,但是并不回显,页面不进行显示

941477276 commented 1 year ago

可以提供更详细点的代码吗?phoneObj.mobileAreaCode的值为什么?

leah0717 commented 1 year ago

字符串数值,我随便传了55。用基于vue2的vue-country-intl,编写以上代码是可以正常回显的,vue3-country-intl不可以

941477276 commented 1 year ago

你用的是vue2还是vue3?

leah0717 commented 1 year ago

你用的是vue2还是vue3?

vue3使用vue3-country-intl这个插件遇到了这个问题。我之前vue2项目用的vue-country-intl,同样的代码逻辑并没出现回显不了这种情况

941477276 commented 1 year ago

iso2的值需为国籍编码,你传递的是手机区号,回显不出来是正确的,vue2的vue-country-intl可以回显出来反而是一个bug

leah0717 commented 1 year ago

iso2的值需为国籍编码,你传递的是手机区号,回显不出来是正确的,vue2的vue-country-intl可以回显出来反而是一个bug

可是我设置的type是为phone,我看文档上phone表示选择手机区号。这种情况下也要传递国籍编码吗?并且我刚尝试传递国籍编码CN也是不可以的,无法回显

941477276 commented 1 year ago

type=phone是选择手机区号,v-model的值是手机区号。如果传递了iso2,那么它的值需为国籍编码,目的是为了解决手机区号为212、358、1时出现回显不正确问题(这几个区号被多个国家使用)。

<vue3-country-intl type="phone" :iso2="phoneObj.mobileAreaCode" v-model="phoneObj.mobileAreaCode"/> iso2的值为phoneObj.mobileAreaCode是不正确的,你应该通过onChange事件获取到完整的国籍及手机区号信息,再将组件iso2属性的值赋值为完整的国籍信息里面的iso2属性

leah0717 commented 1 year ago

type=phone是选择手机区号,v-model的值是手机区号。如果传递了iso2,那么它的值需为国籍编码,目的是为了解决手机区号为212、358、1时出现回显不正确问题(这几个区号被多个国家使用)。

<vue3-country-intl type="phone" :iso2="phoneObj.mobileAreaCode" v-model="phoneObj.mobileAreaCode"/> iso2的值为phoneObj.mobileAreaCode是不正确的,你应该通过onChange事件获取到完整的国籍及手机区号信息,再将组件iso2属性的值赋值为完整的国籍信息里面的iso2属性

不好意思没理解,方便编写下代码吗

941477276 commented 1 year ago
<template>
    <vue3-country-intl type="phone" :iso2="phoneObj.iso2" v-model="phoneObj.mobileAreaCode" @onChange="onAreaCodeChange " />
</template>

<script setup>
import {reactive} from 'vue';

let phoneObj = reactive({
    mobileAreaCode: '',
    iso2: ''
});

let onAreaCodeChange = funtion (country) {
    phoneObj .iso2 = country.iso2;
};
</script>
leah0717 commented 1 year ago
<template>
    <vue3-country-intl type="phone" :iso2="phoneObj.iso2" v-model="phoneObj.mobileAreaCode" @onChange="onAreaCodeChange " />
</template>

<script setup>
import {reactive} from 'vue';

let phoneObj = reactive({
    mobileAreaCode: '',
    iso2: ''
});

let onAreaCodeChange = funtion (country) {
    phoneObj .iso2 = country.iso2;
};
</script>

可以了,十分感谢