O non riesco a ottenere il modello o il mio disegno è sbagliato.Comunicazione componente angolare2 con router-outlet
Uso angular2-beta0, dattiloscritto
Fondamentalmente ho configurato un'applicazione molto semplice con un componente principale di un router che controlla viste principali e poi su alcune pagine ho un router secondario per controllare le subviews su tale componente .
Quello che mi sembra di essere in difficoltà è come strutturare le cose con la comunicazione tra i componenti. Con l'applicazione così com'è al momento è organizzata in un modo che per me ha senso logico, le viste del percorso principale non hanno nulla in comune e nelle viste della strada secondaria condividono tutte la stessa navigazione laterale e le stesse intestazioni. Il problema che ho sembra è tornare alla vista principale di una sottoview. Sembra che sia un bambino in un router-outlet che non può ottenere la dipendenza del componente principale. Ho guardato eventi personalizzati ma questi sembrano funzionare solo se legati a un modello. L'unica altra opzione sembra essere un servizio, ma a me sembra spezzato perché idealmente voglio che il componente genitore abbia il controllo dello stato dei componenti secondari.
Qualsiasi come qualche esempio di codice ...
@Component({
selector: 'app'
})
@View({
template: '<router-outlet></router-outlet>',
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{ path: '/', as: 'Login', component: LoginForm },
{ path: '/main/...', as: 'Main', component: Main}
])
class App {
constructor(private _router: Router) {
}
}
bootstrap(App, [ROUTER_PROVIDERS, provide(APP_BASE_HREF, { useValue: '/' })]);
@Component({
selector: 'main'
})
@View({
templateUrl: '/client/main/main.html',
directives: [ROUTER_DIRECTIVES, NgClass, Menu, Main]
})
@RouteConfig([
{ path: '/', as: 'Clear', component: StateClear },
{ path: '/offer', as: 'Offer', component: StateOffer }
])
export class Main {
constructor(private _router: Router) {
}
}
@Component({
selector: 'state-clear'
})
@View({
templateUrl: '/client/bookings/state-clear.html'
})
export class StateClear {
constructor(main: Main) {
}
}
L'errore che sto ottenendo con DI è questo ...
ECCEZIONE: Impossibile risolvere tutti i parametri per StateClear (non definito). Assicurati che abbiano tutti un tipo o annotazioni validi.
Nessun errore con l'evento poiché non vedo come ascoltare all'esterno del modello.
Potresti fornire nella tua domanda il contenuto del componente 'StateClear', principalmente costruttore? Grazie! –
Lo stato di cancellazione è sotto main, passando semplicemente main nel costruttore. Il mio modo di pensare iniziale come passare in main mi permetterebbe di chiamare metodi pubblici sulle proprietà pubbliche principali e di accesso per controllare lo stato di quell'intera sezione, ma sembra che DI attraverso una rotta non funzioni come previsto. – gringo2150