$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {

  // 遷移を止める
  event.preventDefault();

 // $resouce処理
 ,success(function{
    $state.go('state');
 })
 ,error(function(){something})

}

ルーティングはui-routerを使用しています。
上記の処理をしてページ遷移を実現させていますが、
ブラウザの戻るを押下した時、1つ前の画面と表示している画面をループするように
なってしまっています。

同期処理にするか、ブラウザでの戻る、進むを検知するかすれば
対応できると思うのですが、どのように実装すればいいでしょう?