0

我一直在尝试从我的方法“ itemChange ”中访问我的“选定”数据,但一点运气都没有。 我得到的错误是“ this.selected is undefined

我的问题是如何从我的方法访问我的组件数据?

我的组件实现

import VueSelect from 'vue-select';

Vue.component('v-select', VueSelect);
        Vue.component('club-type',{
            template: "#club-type",
            props: ['options'],

        data: {
                selected: {title: 'My title', logo: 'logo here', info: 'info here'}
        },
        methods: {
            itemChange: function () {
                console.log("msg: " + this.selected['title']);
            }
        }
    });

我的模板

<script type="text/x-template" id="club-type">

                <v-select :options="options" label="title" :on-change="itemChange" :searchable="false" v-model="selected">

                    <template slot="option" scope="option">
                        <div class="float-left-items">
                            <div class="club-type-thumb" v-if="option.logo"><img v-bind:src="option.logo"></div>

                            <div class="club-type-title">{{ option.title }} <br/> <span class="pill club-type-pill"> AGE {{ option.age }}</span></div>
                        </div>
                    </template>
                </v-select>
</script>

在我上面的模板中,如果我添加v-model="selected"它会显示一个错误“ selected is undefined.

4

1 回答 1

1

首先,您需要返回您的数据:

data () {
  return {
    selected: { title: 'My title', logo: 'logo here', info: 'info here' }
  }
},

然后,它不是一个数组,所以你不能像你在你的方法中尝试的那样访问它。您必须将其称为属性。

this.selected.title

编辑:正如@Phil 所说,第二点不是必需的。

于 2018-08-13T06:19:12.310 回答