2017-02-13 7 views
0

私はVue.jsをCRUDシステムに使用しており、顧客、製品などのさまざまなドメインクラスを追跡しています。私は各エディタコンポーネント(例:CustomerDetail、製品の詳細)。ユーザーが保存せずにページから離れたときの共通の動作が欲しいので、私は 'beforeRouteLeave'で呼び出すことができる検証ミックスにメソッドを持たせたいと思っています。私はこれを使用しようとするとbeforeRouteLeave and 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を認識させることができますか?

+0

この関数を 'beforeRouteLeave'でどのように呼び出すかを教えてください。 – mzgajner

+0

もう一度試してみましたが動作していますので、問題はなく、動作すると予想されていた通りに動作します。 'beforeRouteLeave(to、from、next){ this.checkOnLeave(this.settings、"設定エディタを終了してもよろしいですか?新規または変更されたデータは失われますか " "離脱"、 "編集続行"、次));} ' –

答えて

0

レッドニシン警告。それは実際にはうまく動作します。以前は問題を引き起こしていたコンパイルの遅延があったに違いないでしょう(時には 'npm run dev'でコンパイルされていることもあります)。