请求后打开模态-Vue.js



我有一个带有vuejs的注册模式,如果用户在表单中插入了错误的信息,并且信息没有在控制器中验证,我需要(使用laravel(我可以通过模式打开将用户重定向到同一页面(我在数据中有"showRegister",重定向后我需要用"showRegister:true"将其打开(

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

当我们重定向到页面时,默认情况下showRegisterfalse

代码:

<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>

重定向返回时,在视图中传递一个额外的参数,如: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,
}
});

当然,如果您希望使用逆逻辑,请使用!this.registerError

最新更新