Quasar 根据选项组更改电子邮件的后缀

Quasar change suffix of email depending on option group

我试图在更改选项时更改电子邮件输入的后缀。 这是我的代码的不同部分:

<q-field
  icon="work"
  label="Institution"
  :label-width="3"
>
  <q-option-group
    type="radio"
    v-model="institution"
    @change="changeInstitution"
    :options="[
      {label: 'Institution 1', value: 'I1', suffix: '@institution1.fr'},
      {label: 'Institution 2', value: 'I2', suffix: '@institution2.fr'}
    ]"
  />
</q-field>
<q-field
  icon="email"
  label="Adresse courriel"
  :label-width="3"
>
  <q-input v-model="email" type="email" suffix="" />
</q-field>

我也有这些行:

<script>
export default {
  methods: {
    changeInstitution () {
      console.log('Change institution')
    }
  },
  data () {
    return {
      institution: '',
      email: ''
    }
  }
}
</script>

问题是当我更改 "Institution" 选择时,我没有预期的日志 ("Change institution")。相反,我有这个:

[Vue warn]: Missing required prop: "value"

found in

---> <QInput>
       <QField>
         <QTabPane>
           <QTabs>
             <QModal>
               <QDialog>
                 <Testlogin> at src/components/views/testlogin.vue
                   <QToolbar>
                     <QLayoutHeader>
                       <QLayout>
                         <LayoutDefault> at src/layouts/default.vue
                           <Root>

有人可以给我提示吗?我看了文档(http://quasar-framework.org/components/option-group.html#Installation),无果...

提前致谢。

您正在使用 v-model。这相当于

:value="model" @input="(newVal) => model = newVal"

因此,@change 不会被调用,因为首先发出@input,更改模型,然后 Quasar 组件将发射值与模型进行比较...但是由于 v-model 的 @输入更改模型,现在发射值相同,因此 Quasar 组件跳过 @change 事件。

要么使用:

  1. v-模型和@input
  2. "lazy" 相当于 v-model (:value="model" @change="(newVal) => { model = newVal; callSomething...() }")