beforeRouteLeave和mixin

时间:2017-02-13 14:55:35

标签: vue.js vue-router

我正在将Vue.js用于CRUD系统,跟踪许多不同的域类,例如Customer,Product等。我有一个验证mixin,我在每个编辑器组件中使用它(例如,CustomerDetail,ProductDetail)。因为当用户离开页面而不保存时我想要常见的行为,我希望能够在我的验证mixin中有一个方法,我可以在'beforeRouteLeave'中调用它。我提出的方法是:

checkOnLeave(obj,message,confirmText="Leave",cancelText="Continue Editing",next){
  if (this.isDirty(obj)) { //isDirty checks whether object has been changed
    bootbox.confirm({
      message: message,
      buttons: {
        confirm: {
          label: confirmText,
        },
        cancel: {
          label: cancelText,
        }
      },
      callback: function (result) {
        if (result) {
          next();
        } else {
          next(false);
        }
      }
    });
  } else {
    next();
  }
}

但是,当我尝试使用它时,它不知道如何处理'next'。很明显,这是来自vue-router的东西,它不知道。那么如何让我的mixin vue-router知道,以便我可以使用它?

1 个答案:

答案 0 :(得分:0)

红鲱鱼警报。它实际上工作正常 - 它一定是编译延迟之前导致问题(它不时发生'npm run dev',编译偶尔不会启动)。