2015-01-08 12 views
5

私はフォームページを持っています。フォームを保存しないでユーザーに警告する必要があります。 通常、この目的は、関数window.onBeforeUnloadを記述することで実現できます。流星鉄道ルータの別のページへのナビゲートを防止する方法

しかし、MeteorとIron Routerを使用している私のプロジェクトではうまくいかないようです。 提案がありますか?

+1

"別のページ" = "あなたのウェブサイトの別のルート"または "別のウェブサイトのページ"ですか? –

+0

'' 'window.onBeforeUnload = function(){return 'をナビゲートする前にフォームを保存してください';}' ''を追加していますか? – MurWade

+0

@ PeppeL-G別のページは私のウェブサイトにまだある別のルートです。 – aladine

答えて

1

これは多分ハックバージョンですが、それは動作します:

isUnsaved = -> 
    return unless @ready() 
    unless confirm 'Do you really want to leave the page?' 
    Router.go(@url) 

Router.onStop isUnsaved, 
    only: [ 
    'editPost' 
    ] 
1

古いポストが、ちょうどそれを解決しました。ここに私の解決策があります:

Router.route('/myPath', { 
    unload: function (e, obj) { 
     if(Session.get("hasChanged")){ 
      if (confirm("Are you sure you want to navigate away ?")) { 
       // Go and do some action 
      }else{ 
       // Redirect to itself : nothing happend 
       this.redirect('/myPath'); 
      } 
     } 
    } 
} 
関連する問題