Сделать модал открытым после запроса - Vue. js - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть модальный регистр с vuejs, и мне нужно, если пользователь вставил неправильную информацию в форму, а информация не была проверена в контроллере (используя laravel), я мог бы перенаправить пользователя на ту же страницу с открытым модалом (у меня есть «showRegister» в данных, и мне нужно сделать его открытым с «showRegister: true» после перенаправления)

    new Vue({
        el: '.LR-PC',
        data: {
            showRegister: false,
            showLogin:false,
        }
    });

по умолчанию, когда мы перенаправляем на страницу showRegister, равную false

код:

                <script type="text/x-template" id="modal-template">
                    <transition name="modal">
                        <div class="modal-mask">
                            <div class="modal-wrapper">
                                <div class="modal-container">
                                    <div class="modal-header">
                                        <i class="fa fa-window-close" @click="$emit('close')" style="margin : 0 0 0 100%;"></i>
                                        <slot name="header">
                                            create user
                                        </slot>
                                    </div>
                                            <div class="modal-body">
                                                <slot name="body">
                                            <form method="POST" action="{{ route('register') }}">
                                                @csrf
                                            <input class="input-style-1"  type="text" name="name" id="name" maxlength="9"/>
                                            <input  class="input-style-1"  type="text" name="f-name" id="f-name" maxlength="10"/>
                                            <input class="input-style-1" type="email" name="email" maxlength="50">
                                            <input name="password" class="input-style-1" type="password" maxlength="18">
                                            <input type="password" name="password_confirmation" class="input-style-1" maxlength="18" onchange="hi(sa)">
                                            <div class="r-phone-number input-style-1">
                                            <input type="tel" name="phone"  style="margin: 0px; border-width: 0px; width: 323px; text-align: right; position: relative; right: auto; left: 15px;" class="input-style-1">
                                            <i class="fas fa-info-circle"></i>
                                            </div>
                                                @if($errors->any())
                                                    <div class="alert alert-danger">
                                                        <ul>
                                                            @foreach($errors as $error)
                                                                {{$error}}
                                                            @endforeach
                                                        </ul>
                                                    </div>
                                                @endif
                                                <slot name="footer">
                                                    <div class="modal-footer">
                                                      <button type="submit" class="btn btn-primary center-block wid-100">register</button>
                                                    </div>
                                                </slot>
                                            </form>
                                                </slot>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </transition>
                </script>
                <a id="show-modal" @click="showRegister = true" class="l-main">register</a>
                <modal v-if="showRegister" @close="showRegister = false">
                </modal>

1 Ответ

0 голосов
/ 18 февраля 2020

Когда вы перенаправляете назад, передаете дополнительный параметр в поле зрения: view('yourRoute', ['registerError'=>true]). В вашем vue компоненте получите его как <lr-pc register-error="{{$registerError}}"></lr-pc>. Таким образом, вы можете обработать его внутри элемента vue.

new Vue({
        el: '.LR-PC',
        props:{
           registerError:{
               type:Boolean,
               default: false
           }
        },
        data: {
            showRegister: this.registerError,
            showLogin:false,
        }
    });

Конечно, если у вас sh обратный лог c, используйте !this.registerError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...