Robię aplikację kątową, w której wiersze tabeli mają każdy przycisk, a po kliknięciu tych przycisków powinna zostać dodana nowa zakładka otwarty dla wiersza, w którym przycisk jest włączony.ui-router: stan otwarty w nowej karcie z target = "_ blank", utracono parametry
Musiałem przekazać parametry do nowej zakładki utworzonej w ten sposób. Mam ogłoszony parametr w inicjalizacji Stan:
.state('viewlisting', {
url: "/listings/:id",
params: {
'action': '',
},
controller: 'ListingsController',
templateUrl: "partials/listings/view_listing.html"
});
i przycisk ma coś takiego:
ui-sref='viewlisting({id:"+data+", action:"images"})'
params są przekazywane w, wszystko działa zgodnie z oczekiwaniami.
//URL: /#/listings/42
$state.params.action //returns "images"
$state.params.id //returns "42"
Ale dodanie target="_blank"
do znacznika <a>
powoduje $ state.params obiekt do powrotu następujące:
//URL: /#/listings/42
$state.params.action //returns ""
$state.params.id //returns "42"
Rozglądałem się przez kilka godzin, szukałem w dokumentacji routera-ui oraz narzędzie do śledzenia problemów, które dotyczy mojej sytuacji, ale niczego nie znalazłem.
Czy parametry stanu nie są przekazywane na łączach target='_blank'
"ed ui-sref
?
Dziękuję za to .. jakoś wiedziałem, że to możliwe, ale chciałem zachować parametr działania z URL. Chcę tylko zapytać, czy istnieje sposób, w którym mogę zmienić wynikowy URL '/ listings/42? Action = images' na' listingings/42'. –
Odpowiedź powinna być teraz jasna (to znaczy po mojej odpowiedzi) - NIE, to niemożliwe. URL to jedyny sposób na rozmowę ze światem zewnętrznym. I to jest nowa karta, nowe okno lub tylko link wysyłany pocztą e-mail. Wszystkie potrzebne parametry muszą być osadzone w adresie URL. Czy teraz jest jasne? –
Uczyniłeś to całkiem dobrze, pytałem się, jak zmienić adres URL napisany na pasku adresu na 'listingi/42' po'/listings/42? Action = images'. To nie tak, że odrzucam twoją odpowiedź, po prostu nie chcę wystawiać tego parametru użytkownikowi, więc pomyślałem, czy mogę zmienić adres URL PO załadowaniu strony. –