私はアンギュラ2で新しいです。私は最初のプロジェクトに取り組んでいます。これは、異なるコンポーネントで5つのフォームと最後のコンポーネントとしてサマリーで構築された予算の電卓です。 共有サービスを作成し、任意のフォームから要約コンポーネントにデータを渡す方法を理解するのに問題があります。 このplunkerのバージョン番号14を見ると、私が取り組んでいるものの簡単な作業バージョンがあります。http://plnkr.co/edit/KOSmVSMSnEvtfH4gplBQ?p=preview 同じ大胆なバージョン15では、達成しようとしているものを見つけることができます。誰かが助けることを願っています。 PageOneComponentアングル2共有サービスの渡し方オブジェクト
`import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Hero } from './hero';
import { DataService } from '../dataservice';
@Component({
template: `<h3>Page One </h3>
<input [(ngModel)]="hero.name" type="number" />
<select name="selectedPayFrequency" [(ngModel)]="selectedPayFrequency"
(ngModelChange)="onChange($event)">
<option *ngFor="let p of payFrequencies" [ngValue]="p"> {{p.name}} </option>
</select>
<input [(ngModel)]="hero.prova" type="number" />
<h1>{{newTotalIncome()}}</h1>
<br />
`,
})
export class PageOneComponent implements OnInit, OnDestroy {
hero: Hero = {
name: 0,
prova:0,
};
constructor(public dataservice: DataService) {}
payFrequencies = [{'name': 'per Month','value':1}, {'name': 'per Year', 'value':1/12}];
selectedPayFrequency = this.payFrequencies[0];
onChange(payFrequency) {
return(payFrequency.value);
}
ngOnInit() {
}
ngOnDestroy() {
this.dataservice.hero = this.hero;
}
newTotalIncome(){
return ((this.hero.name* this.selectedPayFrequency.value)*this.hero.prova)}
}`
私の大きな問題は、サービスを通じてselectedPayFrequencyを渡す方法を見つけることです。ここで ここにサービスコード
`import { Hero } from './hero';
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
public hero: Hero;
}`
とヒーロークラス `エクスポートクラスヒーロー{ 名:数; prova:number;
}`
要約成分
`import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Hero } from './hero';
import { DataService } from '../dataservice';
@Component({
template: `<h3>Page Two: Data taken from page one.</h3>
<span>{{newTotalIncome()}}</span>
<br />`,
})
export class PageTwoComponent implements OnInit, OnDestroy {
hero: Hero;
constructor(public dataservice: DataService) {}
ngOnInit() {
this.hero = this.dataservice.hero;
}
ngOnDestroy() {
}
}`
あなたが共有したプランナーのバージョン15が見つかりません。リンクを共有してください。また、共有サービスを設定するにはいくつかの方法があります。コンポーネントがどのように関連しているかによって異なります。私はバージョン15を見てからそれに着きます。 – Nehal
http://embed.plnkr.co/Oy3rv5wZE0JleNGwtn8a/多くのありがとう – Sabina