#vue.js #v-model #vue-props
#vue.js #v-модель #vue-props
Вопрос:
Я использую vuetify.js и пытается передать v-model в реквизитах в тег v-dialog,
v-dialog не работает. когда я нажимаю на кнопку, которая устанавливает реквизит в true,
v-dialog не открывается
здесь прилагается код родительского и дочернего компонентов:
вот мой код :
мой родительский компонент:
data: () => ({
showActionDialog:false,
)},
<team-actions
@movetohistorytab="$emit('historytab')"
:team="team"
:showActionDialog="showActionDialog"
:selectedSetups="selectedSetups">
</team-actions>
<v-tooltip top>
<template v-slot:activator="{ on }">
<v-chip
:disabled="selectedSetups.length <= 0"
v-on="on"
class="ma-2 white--text float-right"
label
outlined
style="font-family: 'Segoe UI Emoji';"
color="green"
@click="showActionDialog=true"
>Add Actions</v-chip
>
</template>
Add actions to the selected platforms
</v-tooltip>
мой дочерний компонент:
props: {
team: {
type: String,
default: "Sustaining",
},
selectedSetups:[],
showActionDialog:false,
},
<v-dialog v-model="showActionDialog">
<v-card
width="900px"
style="
position: fixed !important;
top: 0 !important;
right: 0 !important;
bottom: 0 !important;
"
>
<v-row>
<v-col cols="5">
<v-card-title primary-title style="color: #0d47a1">
<v-icon color="blue darken-4">arrow_forward</v-icon>Platform
Actions
</v-card-title>
</v-col>
</v-row>
<v-col>
<v-card style="height: 500px" :tile="true">
</v-card>
</v-col>
</v-card>
</v-dialog>
есть идеи, что здесь не так?
есть что-то особенное в реквизите v-dialog?
кто-нибудь может помочь?
Спасибо!
Комментарии:
1. Я вижу, что у вас есть
showActionDialog
как у родительского, так и у дочернего элемента. Вы используете его в дочернем элементе, но обновляете его в родительском (это не одна и та же переменная!)2. Вы можете попробовать: в родительском, добавьте
rel="actions_dialog"
атрибуты дочернего компонента. И родительский@click="showActionDialog=true"
элемент должен стать чем-то вроде@click="$refs['actions_dialog'].showActionDialog=true"
. Это эффективно устанавливает дочернееshowActionDialog
значение tue, поэтому оно должно отображаться.3. спасибо, v-model и реквизит в дочернем компоненте должны быть: actions_dialog ?
4. Нет, в этом нет необходимости.
actions_dialog
только для родительского, а не дочернего элемента. Но он создает интерфейс между вашим родительским и дочерним компонентом, поэтому вы можете получить доступ к showActionDialog дочернего компонента ` См. vuejs.org/v2/guide /…5. не работает:(, сделал следующим образом: в родительский ввел вызов переменной: actions_dialog, в дочерний атрибут ввел: rel=»actions_dialog», в функции click я ввел: @click=»$refs[‘actions_dialog’].showActionDialog=true». в дочернем элементе у меня есть реквизит, называемый ShowActionDialog», это то, что вы имеете в виду?