Angular Wspólnoty!Routing Angular2: trwanie kart trasa i ścieżki dla dzieci
Aktualnie przepisuję aplikację AngularJS na Angular 2. Chcę rozwiązać problem, który można opisać jako: zakładki trasy i ścieżki podrzędne.
Więc, zasadniczo Router w Angular 2 niszczy nieaktywne komponenty (moje karty!). Problem polega na tym, że nie chcę tego zachowania. Powodem jest to, że mam kilka komponentów, takich jak wykresy i siatki danych, i chcę szybko się między nimi przełączać, nie chcę ich odtwarzać.
Znalazłem jakiś obejście utrzymują swoje występy podczas trasy ale mający zastosowanie tej metody nie wiem jak wdrożyć dróg podrzędnych. Chciałbym również mieć rozwiązanie niezależne od głębokości (co oznacza: praca na więcej poziomach głębiej), ponieważ mam więcej podzadań, które muszą być utrzymane.
Rozwiązaniem jest: Włożyłem trochę pusty składnik do tras i wystąpienia zaczepy sam je ukrywających się [hidden]
nieruchomości:
app.ts:
@Component({ /*...*/ })
@RouteConfig([
{path: '/**', redirectTo: ['Dashboard']},
{path: '/dashboard', name: 'Dashboard', component: EmptyRoute},
{path: '/products/...', name: 'Products', component: EmptyRoute},
{path: '/sales', name: 'Sales', component: EmptyRoute},
{path: '/reports', name: 'Reports', component: EmptyRoute},
])
export class App {
constructor(private router: Router) {
}
public isRouteActive(route) {
return this.router.isRouteActive(this.router.generate(route))
}
}
app.html:
<dashboard [hidden]="!isRouteActive(['/Dashboard'])"></dashboard>
<products-management [hidden]="!isRouteActive(['/Products'])"></products-management>
<sales [hidden]="!isRouteActive(['/Sales'])"></sales>
<reports [hidden]="!isRouteActive(['/Reports'])"></reports>
Jeśli ktoś byłby zainteresowany jakimś częściowe rozwiązanie: https://github.com/ kątowe/kątowe/issues/6634 – Namek
Sam miałem ten problem i znalazłem odpowiedź na moje własne pytanie tutaj: http: // stackoverflow.com/a/36100138/2972 – MartinHN
@MartinHN przetestowałeś go dla sparametryzowanych hierarchii? Mój test plnkr: http://plnkr.co/edit/MMy3azc4ksQOH6ezZIG5?p=preview - kliknij Produkt 1, następnie Produkt 2, a następnie Produkt 1, brakuje tekstu na dole. Nie można znaleźć rozwiązania, ale Router nie powinien definitywnie zarządzać cyklem życia komponentów. CanReuse nie działa tak, jak można się spodziewać. Po prostu porównuje komponenty tego samego typu, prawdopodobnie na tym samym poziomie trasy. Straciłem trochę czasu na debugowanie Angulara 2 i uważam, że Router potrzebuje przeprojektowania - niestandardowe Outlet nie działa - lub może w niektórych przypadkach hierarchia nie odgrywa roli – Namek