私は、プロジェクト内で状態ベースのルーティング(Angular UI Router v0.2.7)を使用しており、指定されたURL文字列から現在の状態(名前)を取得する方法を探しています。以下のような角度UIルータでURL文字列から状態を取得
何か:
$state.get([urlString]) returns stateName:String or state:Object
は私がいないすべてのURLは私のプロジェクトでの状態にマッピングされているので、状態が与えられたURLに存在しているかどうかを確認するために、この方法が必要になります。 Play Frameworkをバックエンドとして使用すると、一部のURL(ログインフォームなど)は、別のテンプレートを使用しているため、アプリケーションの角(主)部分を使用しているため、状態にマッピングされません。 「角度のない」ページ(状態ではカバーされていない)については、リロードを行います。状態によってカバーされていないURLを特定するには、上記の方法が必要です。このようにそれを行うことを計画:
$rootScope.$watch(function() { return $location.path(); }, function(newUrl, oldUrl) {
if(newUrl !== oldUrl) {
if (!$state.get(newUrl)) {
$window.location.assign(newValue);
}
}
}
はすでにdocuをチェックしますが、そのような方法がありません。
アイデア?
URLはAngularjsプロジェクトの範囲外ですか?あなたは例を挙げることができますか? –
はい、一部のURLはバックエンド(Playフレームワーク)によって処理されます。上記の詳細をいくつか追加しました。 – cnmuc
誰がどのルートを取得するかを制御できる 'routes'ファイルがあります。あなたのURLのルート '/'でangularjsを設定し、すべてのAPI呼び出しを '/ api'から再生するようにリダイレクトすることができます。 Angularjsはそれについて心配する必要はありません。ユーザーにAPI URLを与えてはいけません。 –