【问题标题】:How to return a object on v-model on <md-select> component on VueJS?如何在 VueJS 的 <md-select> 组件上返回 v-model 上的对象?
【发布时间】:2020-01-02 18:15:27
【问题描述】:

我正在使用 Vue 材质组件,并且可以选择一个值。情况是当用户选择一个选项时我得到原始值(字符串、布尔值、数字),但我想得到整个对象。

    <div class="item-select-grupo-insumos">
      <md-field>
        <label for="codigo-grupo-insumos">Grupo</label>
        <md-select
          name="codigo-grupo-insumos"
          id="codigo-grupo-insumos"
          v-model="formNewInsumo.codigoGrupoInsumos" // Here I would like get the whole object, but it get the unic value.
          md-dense
        >
          <md-option
            v-for="(grupo,idx) in gruposDeInsumos"
            :key="idx"
            :value="grupo.codigo"
          >{{grupo.codigo}} | {{grupo.nome}}</md-option>
        </md-select>
      </md-field>
    </div>

...
data() {

return {
      gruposDeInsumos: [{
       codigo: "G00032",
​       nome: "asdasd",
​       tipo: "products"
}],
      formNewInsumo: {
        nome: "",
        codigoGrupoInsumos: "",
        unidade: "",
        wholeObject: {}
      },
}

整个对象格式用于:v-for="(grupo,idx) in gruposDeInsumos"

grupo: {
codigo: "G00032",
​
nome: "asdasd",
​
tipo: "products"
}

【问题讨论】:

    标签: javascript vue.js vue-material


    【解决方案1】:

    您是否尝试过将对象作为“md-option”中的值传递?
    这样,选项应该采用对象的值而不是原始值。

    <md-option
        v-for="(grupo,idx) in gruposDeInsumos"
        :key="idx"
        :value="grupo"
      >{{grupo.codigo}} | {{grupo.nome}}</md-option>
    

    【讨论】:

    • 我认为v-model必须是字符串、数字或布尔值。
    • v-model 可以是任何类型的值,你在md-select 上使用的v-model 应该得到你在value 属性上指定的值md-option
    • 如果我这样做:[Vue warn]: Invalid prop: type check failed for prop "value". Expected String, Number, Boolean, got Object。我可以t use object on :value`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2021-03-10
    • 2019-01-03
    • 1970-01-01
    • 2018-07-26
    • 2018-12-20
    相关资源
    最近更新 更多