2016-10-24 3 views
0

Ich habe eine Komponente, die bei erfolgreicher Datenauflösung mithilfe von Resolvern auf Router-Ebene geladen (geroutet) wird. Die vom Server abgerufenen Daten müssen an die untergeordneten Komponenten übergeben werden. Die Daten werden aufgelöst und dementsprechend vergangen, aber untergeordnete Komponente wirft einen Fehler vonAngular 2: Routendatenauflösung in untergeordneter Komponente

für den Zugriff von undefined

versucht

.

Szenario:

geordnete Komponente HTML:

<parent> 
    <child [_data]="dataFromResolver"></child> 
</parent> 

Eltern Component.ts

export class Parent implements OnInit { 

    dataFromResolver: any; 

    constructor(private route: ActivatedRoute) { 
    } 

    ngOnInit() { 
     this.route.data.forEach((data: any) => { 
      this.dataFromResolver = data; 
     }); 
    } 
} 

Resolver Service:

resolve(route: ActivatedRouteSnapshot): Observable<boolean | any> { 
    return this.parentService.getData().map(output => { 
     if (output) { 
      return output; 
     } else { 
      this.router.navigate(['/login']); 
      return false; 
     } 
    }); 
} 

Kinder Compnent.ts

@Input() _data(value: any) { 
     this.data = value; 
    } 


    data: any; 

Child Component HTML

<p>{{data.name}}</p> 

Strecke hat auch dementsprechend, und ich kann Daten sehen in Netzwerk-Registerkarte Browser-Tools konfiguriert kommen.

Bitte lassen Sie mich wissen, wenn etwas fehlt mir etwas.

Antwort

0

Den Fehler gefunden, den ich verpasst habe set nach @Input(). Ein Fehler bei einem Fehler.

Verwandte Themen