Ich mache eine Angular App, in der die Zeilen einer Tabelle jeweils eine Schaltfläche haben, und beim Klicken auf diese Schaltflächen sollte eine neue Registerkarte sein für die Zeile geöffnet, die diese Schaltfläche aktiviert ist.UI-Router: Zustand in neuem Tab öffnen mit target = "_ blank", Parameter sind verloren
Ich musste Parameter in die neue Registerkarte, die auf diese Weise erstellt wurde, übergeben. Ich habe den Parameter in der Zustandsinitialisierung erklärt:
.state('viewlisting', {
url: "/listings/:id",
params: {
'action': '',
},
controller: 'ListingsController',
templateUrl: "partials/listings/view_listing.html"
});
und der Knopf hat etwas Ähnliches:
ui-sref='viewlisting({id:"+data+", action:"images"})'
Die params in übergeben werden, alles wie erwartet funktioniert.
//URL: /#/listings/42
$state.params.action //returns "images"
$state.params.id //returns "42"
Aber das Hinzufügen target="_blank"
zum <a>
Tag bewirkt, dass das Objekt state.params $ Folgendes zurück:
//URL: /#/listings/42
$state.params.action //returns ""
$state.params.id //returns "42"
ich stundenlang gesucht habe, habe ich an der ui-Router-Dokumentation angesehen und der Problem Tracker für etwas, das meine Situation anspricht, aber ich habe nichts gefunden.
Sind die Zustandsparameter nicht weitergegeben target='_blank'
'ed ui-sref
Links?
Danke dies .. irgendwie wusste ich, das war möglich, aber ich wollte die Aktionsparameter aus der URL halten. Ich möchte nur fragen, ob es eine Möglichkeit gibt, die resultierende URL '/ listings/42? Action = images' in' listings/42' zu ändern. –
Die Antwort sollte jetzt klar sein (ich meine nach meiner Antwort) - NEIN es ist nicht möglich. URL ist nur so wie man mit external world kommuniziert. Und das ist ein neuer Tab, ein neues Fenster oder einfach nur ein Link per Email. Alle benötigten Parameter müssen in die URL eingebettet werden. Ist es jetzt klar? –
Sie haben das ganz deutlich gemacht, ich fragte, wie man die in der Adresszeile geschriebene URL zu 'listings/42' AFTER'/listings/42? Action = images' ändert. Es ist nicht so, als würde ich deine Antwort ablehnen, ich möchte den Parameter dem Benutzer nicht bloßlegen, also dachte ich, wenn ich nur die URL NACH dem Laden der Seite ändern könnte. –