【发布时间】:2016-07-30 01:14:34
【问题描述】:
我有一个返回 Observable<Person[]> 的函数,Person 是我的模型:
export interface Person {
id: string;
age: number;
}
现在在我的 component.ts 中,我正在调用这个函数,我想检索那个数组,以便可以在 html 中显示它。
返回的数组示例:
[{"id":"13434 1","age":21},{"id":"34334 1","age":27}]
我有 2 个调用相同功能的按钮。
我的 component.ts 中有三个方法在单击按钮时触发,这就是我想设置一些变量来保存该 Observable 的返回值的地方。我试图做某事,但它没有工作......
这是函数:
@Injectable()
export class MyCmp implements OnInit {
listOneData: Observable<Person[]>;
listTwoData: Observable<Animal[]>;
showListOne = false;
showListTwo = false;
constructor(private _myService: MyService) {
};
public showListOneData(): void {
this.showListOne = true;
this.showListTwo = false;
this._myService.getListOneData().subscribe(res => {
this.listOneData = res;
})
}
public showListTwo(): void {
this.showListTwo = true;
this.showListOne = false;
this._myService.getListTwoData().subscribe(res => {
this.listTwoData = res;
})
}
}
this.listTwoData = res; 这一行无法编译,因为我将Person[] 分配给listOneData: Observable<Person[]>;,但即使我使用 Observable 它也不起作用。
有人可以向我解释一下什么是有效的方法吗?我不想异步执行,因为我想向 html 发送一个数组,并根据我应该在哪里取消订阅的代码?
感谢分配!
【问题讨论】:
标签: javascript angularjs typescript angular angular2-routing