0
我正在使用Vue.js作爲CRUD系統,跟蹤許多不同的領域類,如客戶,產品等。我有一個驗證混合,我在每個編輯器組件中使用(例如,CustomerDetail,產品信息)。因爲我希望用戶在不保存的情況下離開頁面時的常見行爲,我希望能夠在我的驗證混合中使用一個方法,我可以在'beforeRouteLeave'中調用該方法。我想出的方法是這樣的:beforeRouteLeave和mixin
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();
}
}
當我嘗試利用這一點,雖然,它沒有任何想法做什麼用的「下一步」。很明顯,這是vue-router不知道的。那麼我怎麼能讓我的mixin vue-router知道,以便我可以使用它呢?
請向我們展示如何在'beforeRouteLeave'中調用此函數。 – mzgajner
只是再次嘗試,它的工作,所以沒有問題,它的工作原理,因爲我預計它會工作。要回答你的具體問題,就像這樣:'beforeRouteLeave(to,from,next){this.checkOnLeave(this.settings,「你確定要離開設置編輯器嗎?你將失去任何新的或改變的數據」, 「離開」,「繼續編輯」,下一步);}' –