Vue - 如何访问beforeRouteLeave中的数据 - 在Component Guard中

时间:2017-11-02 21:18:17

标签: javascript vue.js vuejs2 vue-router

尝试访问beforeRouteLeave中的数据,但所有内容都是queryset = A.objects.prefetch_related('aa').all()

以下代码

undefined

3 个答案:

答案 0 :(得分:2)

您需要使用ES5功能而不是箭头功能。使用ES5函数将使this关键字等于组件的实例,而箭头函数使用lexical scoping

beforeRouteLeave: function(to, from, next) {
  if (this.isBodyChanged) {
    return next(false)
  } else {
    return next()
  }
}

但是,您也可以使用我觉得有用的简写。评估结果与上述相同。

beforeRouteLeave(to, from, next) {
  if (this.isBodyChanged) {
    return next(false)
  } else {
    return next()
  }
}

答案 1 :(得分:0)

正如多米尼克所说。您还应该在methods

中添加您的功能

答案 2 :(得分:0)

对我来说,我更改lib 来自

“ vue-router”:“ ^ 2.0.1”

“ vue-router”:“ ^ 3.0.1”

版本2出现错误: https://github.com/vuejs/vue-router/issues/1288