Ich arbeite derzeit tief auf DI in Angular 2. Ich habe eine Komponente, eine HomeComponent, die eine Elternkomponente zu meiner TilesComponent ist.Angular 2 - wie andere Komponente als Service und rad seine Daten verwenden
In Fliesen Komponente habe ich nur:
@Component({
selector:'tiles',
templateUrl: 'app/tiles/tile.component.html',
})
export class TilesComponent{
@Input() report: any;
@Input() selectedCurrencyShort: any;
constructor(private _authService: AuthService, private router: Router, private location: Location, private _insaService: InsaService) {
if (!this._authService.isLoggedIn()) {
this.location.replaceState('/');
this.router.navigate(['LoginComponent']);
return;
}
}
}
und in Vorlage:
<div class="ui-g">
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Total Assets</h5></div>
<div class="row">{{selectedCurrencyShort}} {{report.TotalAsset}}</div>
</div>
</div>
</div>
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Total Liquidity</h5></div>
<div class="row">{{selectedCurrencyShort}} {{report.TotalLiquidity}}</div>
</div>
</div>
</div>
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Unerealised P/L</h5></div>
<div class="row">{{selectedCurrencyShort}} {{report.TotalProfit}}</div>
</div>
</div>
</div>
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Performance TWR</h5></div>
<div class="row">{{report.TWPerformance | number:'.1-2'}}%</div>
</div>
</div>
</div>
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Capital In/Out Flow</h5></div>
<div class="row">{{selectedCurrencyShort}} {{report.TotalInOutAmount}}</div>
</div>
</div>
</div>
<div class="ui-g-2 ui-md-2">
<div class="panel panel-default" style="width:100%; height:40%;text-align:center;">
<div class="panel-body">
<div class="row"><h5>Performance</h5></div>
<div class="row">{{selectedCurrencyShort}} {{report.Performance}}</div>
</div>
</div>
</div>
</div>
ich es mit meinem HomeComponent verbinden müssen, so definiere ich innen nach Hause Komponente html:
<tiles [report]="report" [selectedCurrencyShort]="selectedCurrencyShort"></tiles>
wo ich Berichtsdaten von Home-Komponente an Eigenschaft Bericht in meiner Kachel-Komponente binden und es funktioniert gut.
Nun, ich brauche
<tiles [report]="report" [selectedCurrencyShort]="selectedCurrencyShort"></tiles>
innerhalb einer anderen Komponente zu setzen, zum Beispiel Komponente B. Wie kann ich es nutzen und von zu Hause Component Berichtsdaten und selectedCurrencyShort Daten? Wie muss es richtig injiziert werden (Ich möchte irgendwie meine HomeComponent als Service verwenden) Vielen Dank!