ng-routeに1つの3値条件を追加したいとします。以下を見つけてください:ng-routeに3項演算子を追加する条件
しかし、私はURLに何かを入力すると、いつも「/ air」に行きます。
上記のコードに問題がありますか?
ng-routeに1つの3値条件を追加したいとします。以下を見つけてください:ng-routeに3項演算子を追加する条件
しかし、私はURLに何かを入力すると、いつも「/ air」に行きます。
上記のコードに問題がありますか?
問題は、式が1回だけ評価されることです。
それはたびに呼び出されるようredirectTo
機能作る...
redirectTo: function(routeParams, currentPath) {
console.log('Otherwise rule matched for path', currentPath);
return /^\/(flight|air)\/?$/.test(currentPath) ? '/air' : '/hotel';
}
あなたの表現は、それが関係なく、常に$window.location.pathname
が何であるかの'/air/'
に解決されるような方法で設定されています。
私はあなたがおそらく代わりにこれを行うために意図されたと思う:
$window.location.pathname === '/flight/' || $window.location.pathname === '/air/' ? '/air' : '/hotel'
これはおかげさまで動作します。どのように我々は、使用して、以下のコードのユニットテストを書くのですかジャスミン: 'そうでない場合は({redirectTo:機能(){ 場合(CONTEXTUAL_START_VIEW){ リターン($ window.location.href.indexOf( '/飛行/') |/$ window.location.href.indexOf( '/ air /'))> -1? '/ air': '/ hotel'; } else { return '/ hotel'; } }}} ; ' – anudeep
なぜ '/ air'に'/air'をリダイレクトし、待って? "http:// localhost:9001 /#!/ flight"と入力すると、循環リダイレクトの問題 – Phil