2016-11-30 59 views
5

Używam Angular2 i UI-Router 2 w trybie nie-hash dla prostej aplikacji z niektórymi linkami zakotwiczonymi w menu. Na przykład:Jak mogę zapobiec wartości mieszania stałego adresu URL z routerem UI?

Jeśli pójdę z trasy z mieszania w adresie URL do jednego bez, hash pozostaje. Na przykład przejście z /blah/blech#specifications do /blah/derp za pośrednictwem menu powoduje wyświetlenie adresu przeglądarki /blah/derp#specifications. Oczywiście jest to niepoprawne i w rzeczywistości nieco ograniczające, na przykład gdy wrócę do /blah/blech, a wartość skrótu pozostanie, wysyłając okno do tej lokalizacji zakotwiczenia.

Innym efektem ubocznym jest odświeżanie strony w dość nieprzewidywalny sposób. Przejście z /blah/derp do /blah/blech#specifications powoduje odświeżenie całej strony.

Konfiguracja jest dość standardowe:

export let derpState: Ng2StateDeclaration = { 
    name: 'derpState', 
    component: DerpComponent, 
    url: '/derp' 
} 

Jak mogę połączyć linki hash z UI-Router 2 z dobrymi wynikami? (Alternatywnie, w jaki sposób mogę użyć linków kotwiczących z UI-Routerem w inny sposób?)

Odpowiedz

1

której wersji kątowej 2 używasz? Zaktualizuj to. Nie ma potrzeby imienia i nazwiska.

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

import { DerpComponent } from './derp.component'; 

const derp: Routes = [ 
{ path: 'derp', component: DerpComponent } 
]; 
export const derpState: ModuleWithProviders = RouterModule.forChild(derp); 

Spróbuj tego. Mam nadzieję, że to ci pomoże.

+0

Dziękuję. Ostatnia wersja. Podaj tutaj objaśnienie swojego podejścia. Nie widzę sposobu, w jaki obsługiwane są linki zakotwiczone. – isherwood