@vimirtv

Как передать компоненту параметры через v-model?

Я пытаюсь сделать компонент модального окна, по примеру vuetifyjs. Но не могу понять как привязать свойство props в модальном окне, и родительском компоненте.

работает если место v-model прописать событие input -

v-bind:modal="modal" @input="modal = arguments[0]"

parent.vue
<template>
    <div>
        <dialogBlock v-model="modal">
            <template slot="activator">
                <a class="gl_link popupForm" @click="modal = true">ОТКРЫТЬ</a>
            </template>
            <div slot="header">
                <div class="modal-header">СЛОТ</div>
            </div>
            <div slot="body">
                СЛОТ
            </div>
        </dialogBlock>
    </div>
</template>

<script>
import dialogBlock from '@/components/modal-global'

export default {
  data() {
        return {
            modal: false,
        };
    },
    components: {
        dialogBlock
    }
};
</script>


modal-global.vue
<template>
    <div>
        <span>
            <slot name="activator">открыть</slot>
        </span>
        <transition name="modal">
            <div class="modal-mask" v-if="modal">
                <div class="modal-wrapper">
                    <div class="modal-container" style="width: 320px">
                        <slot name="header">

                        </slot>
                        <button class="modal-default-button" @click="modalShow(false)"></button>
                        <slot name="body">
                            
                        </slot>
                    </div>
                </div>
            </div>
        </transition>
    </div>
</template>


<script>
    export default {
        data() {
            return {
            noExitMask: false
            };
        },
        mounted() {

        },
        props: ['modal'],
        methods: {
            modalShow(modal) {
                this.$emit("input", modal);
            },
        }
    };
</script>
  • Вопрос задан
  • 574 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Дефолтное имя параметра значения для v-model - "value", а никакой не "modal". Замените имя параметра, или настройте model в соответствии со своими потребностями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы