我有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
,但它不起作用,所以我想我错过了一些东西。