【问题标题】:get selected "value" of declared text-field / BootstrapVue获取声明的文本字段/ BootstrapVue 的选定“值”
【发布时间】:2021-10-11 09:15:11
【问题描述】:

我有一个b-form-select 字段和emit 我的value-field 给我的父母,但我也需要选定的text-field..

这是显示我的意思所需的代码:

在我的模板中:

<b-form-select v-model="selected" :options="getOptions" text-field="Name" value-field="Rank"></b-form-select>

但是如果我console.log(this.selected),我当然会得到我选择的值Rank。但是也可以得到text-field 吗?

这是我的脚本,用于展示我选择的工作方式:

computed: {
 getOptions() {
    const array = [];
    const person = this.data.find((i) => i.name === this.name);
    for (let key in person.persons) {
      array.push(person.persons[key]);
    }
    return array;
  },
}

我的 json 数据:

[
    {
        "name": "XXX",
        "persons": {
            "1": {
                "Name": "Max",
                "Rank": "1"
                },
            "2": {
                "Name": "Peter",
                "Rank": "2"
            },
            "3": {
                "Name": "Harry",
                "Rank": "1"
            },
            "4": {
                "Name": "Jake",
                "Rank": "0"
            }

        }
    },
]

【问题讨论】:

    标签: javascript vue.js vuejs2 emit


    【解决方案1】:

    由于您有可用的值以及选项列表,您可以简单地添加一个新的计算字段来获取选定的值text-field

    computed: {
     getOptions() {
        const array = [];
        const person = this.data.find((i) => i.name === this.name);
        for (let key in person.persons) {
          array.push(person.persons[key]);
        }
        return array;
      },
      selectedOption() {
        if (!this.selected) {
          return null;
        }
    
        return Object.values(this.getOptions).find((option) => {
          return option.Rank === this.selected;
        });
      }
    }
    

    然后访问selectedOption.NameselectedOption.Rank。如果将NameRank 也放入变量/数据属性中,还可以使其更通用。

    更新:

    更改为 Object.values

    【讨论】:

    • 只是为了澄清......我认为你理解我的问题是错误的。我已经用我的 json 数据更新了它——我的文本字段和值字段在同一个嵌套的 json 中。您的代码在这种情况下也能正常工作吗?
    • 我实际上仍然认为我做对了 - 由于我认为它是一个数组的对象结构,我刚刚更新了我的答案以实际使用您的 json。
    猜你喜欢
    • 2013-09-15
    • 2021-07-11
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多