Ich verwende mehrere Angular JS $ -Ressourcendefinitionen, die alle ihre Basis-URL von einem Konfigurationsdienst abrufen. Zum Beispiel:
$resource(config.baseURL() + '/api/v2/foo/:id', {id: '@id'})
$resource(config.baseURL() + '/api/v2/bar/:id', {id: '@id'})
Der Grund dies geschehen ist, ist, dass die Basis-URL kann über einen Query-String-Parameter geändert werden, wenn die Anwendung zuerst geladen wird.
habe ich herausgefunden, dass (natürlich im Nachhinein) der URL durch die $ Ressource verwendet wird nur einmal initialisiert, so ist es möglich, eine Race-Bedingung zu erhalten, wo die URL für eine bestimmte $ resource vor die Basis-URL Query-String initialisiert wird Parameter wird behandelt. Also habe ich versucht, die $ Ressource Erklärung, dies zu ändern:
$resource(':baseURL/api/v2/foo/:id', {baseURL: config.baseURL(), id: '@id'})
Leider ist die Basis-URL ist entkam immer - die //
-%2F%2F
umgewandelt wird - so die ganze URL dann nicht richtig funktioniert.
Gibt es eine Möglichkeit, das Entweichen für diesen Parameter zu unterdrücken? (Oder vielleicht ein besserer Weg, um das Problem in der Regel zu lösen)?
Warum hat Ihr baseURL selbst ändern? –
Es ist eine taktische Lösung zur Unterstützung mehrerer Umgebungen. d. h. ich kann eine Instanz leicht auf eine Staging-API verweisen, wenn ich etwas debuggen muss. Nicht ideal und ich suche eine längerfristige Lösung. –
Sie können versuchen, den http: // Teil in den ersten Parameter einzubetten und den Rest des Teils von config.baseURL() zu übergeben und zu überprüfen, ob er funktioniert. – Chandermani