typescript - 如何在 Angular 2 中将变量从组件传递到服务?
我有两个组件(不是父子关系)。在我的第一个组件中,我有 partNumber
export class InfoComponent implements OnInit {
@Output() partEvent = new EventEmitter();
public partNumber: number;
ngOnInit() {
this.partNumber = this.activatedRoute.snapshot.queryParams['part'];
this.partEvent.emit(this.planetNumber);
}
}
所以它能工作,并给我 1、2 或 3
我还有第二个组件,我从 XML 获取数据,并且需要使用 this.partNumber
@Injectable()
export class DataService {
@Input() planetNumber: string;
// x2js = new X2JS();
headers = new Headers({'Content-Type': 'application/json'});
first = 'assets/first.xml';
second = 'assets/second.xml';
third = 'assets/third.xml';
public x2js = new X2JS();
constructor(private http: Http) {}
get(): Observable<any> {
// TODO: pass a URL as a parameter
return this.http.get(this.first, this.headers).map((res) => res.text());
}
}
我想做的事情像这样
get(): Observable<any> {
if(this.partNumber === 1){
return this.http.get(this.first, this.headers).map((res) => res.text());
} else if(this.partNumber === 2) {
return this.http.get(this.second, this.headers).map((res) => res.text());
} else {
return this.http.get(this.third, this.headers).map((res) => res.text());
}
}
所以,如果我有第一部分,我想先处理第一个 XML,如果我有第二部分——那么处理第二个,第三部分=第三个。
我尝试使用@Output,但它不起作用,所以我想我遗漏了什么。