私はいくつかのAngular JS $リソース定義を使用していますが、それらはすべてコンフィグレーションサービスからベースURLを取得します。たとえば、
$resource(config.baseURL() + '/api/v2/foo/:id', {id: '@id'})
$resource(config.baseURL() + '/api/v2/bar/:id', {id: '@id'})
この理由は、アプリケーションが最初に読み込まれたときにクエリ文字列パラメータを使用してベースURLを変更できるためです。
$リソースによって使用されるURLが1回だけ初期化されるので、特定の$リソースのURLが初期化される競合状態が発生する可能性があることがわかりましたの前にベースURLクエリ文字列パラメータが扱われます。 //
が%2F%2F
に変換されます - -
$resource(':baseURL/api/v2/foo/:id', {baseURL: config.baseURL(), id: '@id'})
は、残念ながら、ベースURLがエスケープなっているので、全体のURLは、正常に動作しません。だから私は、これに$リソース宣言を変更しようとしました。
このパラメータのエスケープを抑制する方法はありますか? (または一般的に問題を解決するためのより良い方法)?
なぜ、あなたのベースURLは変わりませんか? –
複数の環境をサポートするための戦術的な解決策です。つまり、何かをデバッグする必要がある場合、ステージングAPIでインスタンスを簡単に指すことができます。理想的ではない&私は長期的な解決策を見ています。 –
http://パーツを最初のパラメータに埋め込み、残りの部分をconfig.baseURL()から渡して、動作するかどうか確認することができます。 – Chandermani