Vue.js содержит пример , демонстрирующий, как создать функциональный компонент, обертывающий кнопку:
<template functional>
<button
class="btn btn-primary"
v-bind="data.attrs"
v-on="listeners"
>
<slot/>
</button>
</template>
Но как я могу создать аналогичный компонент, работающийс select
, который я могу затем использовать v-model
на его родителе?
Я придумал следующее, но когда я использую v-model
на нем, вот так:
<MyComponent :Label="'Status'" :Data="Statuses" v-model="selectedStatus" />
Значение selectedStatus
становится:
[object Event]
<template functional>
<select v-bind:value="data.attrs" v-on="listeners">
<option>-</option>
<option v-for="item in props.Data" :key="item" :value="item">{{item}}</option>
</select>
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
@Component
export default class TaskSelector extends Vue {
@Prop({ type: String, required: true })
public Label!: string;
@Prop({ type: Array, required: true })
public Data!: string[];
}
</script>