Javascript VueJS:在路由删除之前绕过
我有一个Vue水疗中心。在组件内部,我使用Javascript VueJS:在路由删除之前绕过,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我有一个Vue水疗中心。在组件内部,我使用beforeRouteLaveguard来防止用户意外离开页面。在该组件中,有时我会触发一个ajax请求,一旦成功,它必须将页面重定向到另一个位置 问题是一旦ajax请求成功并且$router.push()尝试执行重定向,beforeRouteAve不允许重定向 如何在路由删除之前临时绕过,$router执行重定向 <script> methods:{ someAjaxCall() { axios.post(
beforeRouteLave
guard来防止用户意外离开页面。在该组件中,有时我会触发一个ajax请求,一旦成功,它必须将页面重定向到另一个位置
问题是一旦ajax请求成功并且$router.push()
尝试执行重定向,beforeRouteAve
不允许重定向
如何在路由删除之前临时绕过,$router
执行重定向
<script>
methods:{
someAjaxCall()
{
axios.post('...')
.then(res=>{
this.$router.push({
name: 'route.name.here'
})
})
}
},
beforeRouteLeave(to, from, next){
next(window.confirm('Are you sure? Progress will be discarded.'))
},
</script>
方法:{
someAjaxCall()
{
axios.post(“…”)
。然后(res=>{
这是$router.push({
名称:'路线。名称。这里'
})
})
}
},
出发前(到、从、下一个){
下一步(window.confirm('您确定吗?进度将被丢弃'))
},
我可以使用带条件的布尔变量绕过保护:
<script>
data(){
return {
avoidRouteLeave: false,
}
},
methods:{
someAjaxCall()
{
axios.post('...')
.then(res=>{
this.avoidRouteLeave = true
this.$router.push({
name: 'route.name.here'
})
})
}
},
beforeRouteLeave(to, from, next){
if(this.avoidRouteLeave)
next()
else
next(window.confirm('Are you sure? Progress will be discarded.'))
},
</script>
数据(){
返回{
回避:假,
}
},
方法:{
someAjaxCall()
{
axios.post(“…”)
。然后(res=>{
this.avoidRouteLeave=true
这是$router.push({
名称:'路线。名称。这里'
})
})
}
},
出发前(到、从、下一个){
如果(本.避免离开)
下一个()
其他的
下一步(window.confirm('您确定吗?进度将被丢弃'))
},