通过 .subscribe() 将对象数组分配给变量
Assign array of objects to variable though .subscribe()
我正在关注 Angular.io 指南 https://angular.io/guide/router#route-parameters-in-the-activatedroute-service。他们使用了 | async
,这对我来说并不清楚,我决定进行一些自定义。我想 通过 .subscribe() 将对象数组分配给变量,但没有成功((
这是我的代码的一部分
主要
ngOnInit() {
this.heroes$ = this.route.paramMap.switchMap((params: ParamMap) => {
this.selectedId = params.get('id');
return this.heroService.getHeroes();
});
this.heroes$.subscribe((heroes: Hero[]) => {
this.heroes == heroes
console.log(heroes) // Shows array of Objects
console.log(this.heroes) // Shows undefined
})
英雄服务
getHeroes() { return Observable.of(HEROES); }
英雄
import { Hero } from './hero';
export const HEROES: Hero[] = [
{ id: 11, name: 'Mr. Nice' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Celeritas' },
{ id: 15, name: 'Magneta' },
{ id: 16, name: 'RubberMan' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dr IQ' },
{ id: 19, name: 'Magma' },
{ id: 20, name: 'Tornado' }
];
你打错了。您的 this.heroes == heroes
必须改为 this.heroes = heroes
。
我正在关注 Angular.io 指南 https://angular.io/guide/router#route-parameters-in-the-activatedroute-service。他们使用了 | async
,这对我来说并不清楚,我决定进行一些自定义。我想 通过 .subscribe() 将对象数组分配给变量,但没有成功((
这是我的代码的一部分
主要
ngOnInit() {
this.heroes$ = this.route.paramMap.switchMap((params: ParamMap) => {
this.selectedId = params.get('id');
return this.heroService.getHeroes();
});
this.heroes$.subscribe((heroes: Hero[]) => {
this.heroes == heroes
console.log(heroes) // Shows array of Objects
console.log(this.heroes) // Shows undefined
})
英雄服务
getHeroes() { return Observable.of(HEROES); }
英雄
import { Hero } from './hero';
export const HEROES: Hero[] = [
{ id: 11, name: 'Mr. Nice' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Celeritas' },
{ id: 15, name: 'Magneta' },
{ id: 16, name: 'RubberMan' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dr IQ' },
{ id: 19, name: 'Magma' },
{ id: 20, name: 'Tornado' }
];
你打错了。您的 this.heroes == heroes
必须改为 this.heroes = heroes
。