1

我在 vue 多选中遇到了 v-model 的问题。Multiselect 要求将一个对象传递给 v-model 以具有初始选定值,以便它可以将该对象与选项 Object 匹配。这是我的代码示例:

<b-tr v-for="(income, index) in this.incomes" :key="income.id">
     <b-td>
          <multiselect
            :options="selectAccount"
            v-model="{id:income.account_id,account:income.accounts.account}"
            label="account"
            track-by="id"
          ></multiselect>
        </b-td>
</b-tr>

Vue 不接受以这种方式将对象传递给 v-model,我想不出另一种方法来做到这一点。

这是收入对象:

incomes: Array
  0: Object
    account_id:
    accounts: Object
      account: 
      id:
    amount:
    id:
    date:

选项:

options: Array[3]
  0: Object
    account:
    id:
4

2 回答 2

2

您可以使 v-model 与您通过主数组的索引传递每个元素的数组相关,例如:

v-model="selected_options[index]"

并将 selected_value 设置为数组:

selected_options: []
于 2020-01-26T09:48:19.563 回答
0

不能v-model与多个值一起使用:

“组件 v-model 专为处理原生输入元素的类似用例的单值输入组件而设计。

对于管理多个值同步的复杂组件,显式 prop/event 对是正确的解决方案。在这种特殊情况下,我认为保存的击键不值得增加额外语法的复杂性。”

PS。对多个值的支持将v-model在 20 年第一季度末的 Vue v3 中提供,语法如下v-model:id="income.account_id"

于 2019-12-26T17:24:29.717 回答