2016-08-12 1 views
0

stateChangeStartは起動されません。ブラウザのリフレッシュ前に発生する可能性のある角度のイベントです。リフレッシュページでは、

 this.scope.$on('$stateChangeStart', (event, next, current) => { 
      if(!confirm("Are you sure you want to refresh this page?")) { 
       event.preventDefault(); 
      } 
     }); 

stateChangeSuccessページの更新がすでに行われている場合にのみ起動されます。

更新前にどのイベントが発生するのですか?


UPDATE: が、これは私のコードの一部であり、私の場合 で働いていないwindow.onbeforeunloadを試してみましたが、その権利がありますか?

export default class TableController { 
    constructor($scope,$state, $location) { 
     //some initialization here 
     window.onbeforeunload = function() { 
      console.log('onbeforeunload'); 
      debugger; 
      return null; 
     } 
    } 
    //other coll functions 
    ... 
} 
+0

statechangestartは、$( '$ stateChangeStart' に。.. $ rootScope、このようにルートスコープに起こる機能(E、toStateプロパティ、toParams、fromStateプロパティ、fromParams){ 場合(toState.module === 'private' &&!$ cookies.Session){ – Nagappan

答えて

0

ページリフレッシュの処理は、角度状態のジョブの一部ではありません。

window.onbeforeunloadを使用してください。

window.onbeforeunload = function(){ 
    return "are your sure?"; 
} 

注:の角度の状態変化window.onbeforeunloadにバインド この機能は削除されません。手動でnullを設定する必要があります。

window.onbeforeunload = undefined 
+0

私の質問が更新されました。コンストラクタ内に関数を置くのは正しいですか?現在リフレッシュすると起動しません。 –

関連する問題