私は別のルートにリダイレクトしようとしています:
$location.path("/route");
しかし、何らかの理由で機能していません。 jQuery-UIを使用してオートコンプリートウィジェットを作成し、ユーザーがオプションを選択すると、スコープから関数を呼び出しています。私はそれをデバッグし、関数に入りますが、他のルートにリダイレクトされることはありません。キーを押すとルートが変更されるだけです。
私はそれがちょっと奇妙だと思うが、私はこれを解決する方法を見つけていない。使った
window.location = "#/route";
それは動作しますが、path()
関数を使用したいです。
なぜこれが起こっているのか誰にも分かりますか?
動作しないコードの例では、この質問に簡単に答えることができますが、この情報では、AngularJSダイジェストの外部で$ location.pathを呼び出していると考えることができます。
ディレクティブscope.$apply(function() { $location.path("/route"); });
でこれを試してください
コントローラに$location
を注入することを忘れないでください。
Html5ルーティングを使用していない場合、$location.path("route")
を試してください。これにより、ブラウザが#/route
にリダイレクトされます。
angularアプリケーションからリダイレクトする必要がある場合は、$window.location
を使用します。それは私の場合でした。うまくいけば誰かがそれを見つけるでしょう。
ルーティング方法を確認します。
あなたのルーティング状態がこのような場合
.state('app.register', {
url: '/register',
views: {
'menuContent': {
templateUrl: 'templates/register.html',
}
}
})
その後、使用する必要があります
$location.path("/app/register");
コードを知らずに言うのは難しいです。私の最善の推測は、JavaScriptコードからテキストボックスの値を変更したときにonchange
イベントが発生しないことです。
これを機能させるには2つの方法があります。 1つ目は自分でonchange
を呼び出すことで、2つ目はテキストボックスがフォーカスを失うのを待つことです。
チェック この質問 ;同じ問題、異なるフレームワーク。