2017-06-30 2 views
1

Guten Tag,Winkel 2 | Kann keine Eigenschaftenbindung für geroutete Komponente verwenden

Kann mir jemand sagen, was ist/sind die alternative Möglichkeit, Eigenschaft auf einer gerouteten Komponente zu binden? Es scheint, dass @input() Decorator nicht an der gerouteten Komponente arbeitet.

Danke

+0

können Sie Ihren Code teilen? Obwohl jemand bereits eine Antwort gegeben hat, wäre es hilfreicher, wenn Sie Ihren Code – brijmcq

+0

zur Verfügung stellen könnten, was Sie denken lässt, dass es nicht funktioniert? –

+0

können Sie sich hier auf meine andere Frage beziehen. Was ich will, ist, dass ich die Klasseneigenschaft an eine Kindkomponente binden möchte. https://stackoverflow.com/questions/44817467/angular-2-cant-bind-property-from-another-class?noredirect=1#comment76615953_44817467 –

Antwort

0

Verwenden Sie Router-Parameter. Also, in Ihrer Router-Konfiguration, haben Sie den Router-Pfad zu Ihrer Komponente (wie "MyComponent") wie folgt;

routes: Routes = [ { path: 'mycomponent/:myParam', component: MyComponent} ].

Und übergeben Sie den tatsächlichen Wert an den Router in Ihrem Anker-Tag in HTML wie;

<a [routerLink]="['/mycomponent', paramValue]"> Link to MyComponent </a>

oder in Ihrem Stammkomponente, navigieren programmatisch MyComponent;

this.router.navigate(['/mycomponent', paramValue]);

Und in der Komponente (MyComponent), importieren Sie die ActivatedRoute von Winkel Router, der zu diesen beobachtbaren im ngOnInit Verfahren ein params beobachtbare und abonnieren bietet. So sollte Ihr MyComponent in etwa so aussehen;

import { Component, OnInit, OnDestroy } from '@angular/core'; 
import { ActivatedRoute } from '@angular/router'; 


@Component({ 
    selector: 'my-selector', 
    template: '<div>My Component - Param Value {{myParamValue}}</div> ' 
}) 

export class MyComponent implements OnInit, OnDestroy{ 
myParamValue: any; 
private subscribe: any; 

constructor(private route: ActivatedRoute){} 

ngOnInit() { 
    this.subscribe= this.route.params.subscribe(params => { 
     this.myParamValue = params['myParam']; 
    }); 
    } 

ngOnDestroy() { 
    this.subscribe.unsubscribe(); 
    } 
} 

Lesen Sie weiter here

+0

ist das gleiche mit der Eigenschaft verbindlich? In diesem Beispiel senden Sie den myParamValue an den aktivierten Router-Link? Wo bist du gerade unterwegs? –

+0

Die Eigenschaftenbindung gilt, wenn Sie einen Vorlageneigenschaftswert haben, der an eine Komponenteneigenschaft gebunden werden soll. Wenn die Daten, die Sie an die Komponente übergeben müssen, etwa einer ID entsprechen, können Sie diese Methode verwenden. Verwenden Sie andernfalls einen gemeinsamen Dienst, um die Daten zwischen diesen Komponenten freizugeben – HashanMadz

Verwandte Themen