我正在将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知道,以便我可以使用它?
答案 0 :(得分:0)
红鲱鱼警报。它实际上工作正常 - 它一定是编译延迟之前导致问题(它不时发生'npm run dev',编译偶尔不会启动)。