angular-ui-routerを使用して、遷移先のチェックをしたかったのですが、
$stateChangeStarの引数としてうけとれるtoStateにfunctionが登録されてませんでした。
やりたかったこと
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ if(toState.is('foor')){ event.preventDefault(); $state.go('bar'); } }
上記を実行すると、toStateにisがないと怒られました。
ドキュメントに、Stateオブジェクトが入っていると書いてあるのに。。。
結果、下記のようにしました。
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ if(toState.name === 'foor'){ event.preventDefault(); $state.go('bar'); } }
Docs
angularjs - Using $state methods with $stateChangeStart toState and fromState in Angular ui-router - Stack Overflow