読者です 読者をやめる 読者になる 読者になる

kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

$stateChangeStartの引数toStateにfunctionが定義されていない

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