我无法弄清楚是什么英雄绑定到了subscribe方法内部。当我摆脱英雄类型时,它仍然会在页面上显示我所有的英雄。因此,如果英雄没有绑定到服务内部的内容,那么它仍如何显示我的英雄?
以下是包含订阅方法的组件:
import { Component, OnInit } from '@angular/core';
import { Hero } from './hero';
import { HeroService } from '../hero.service';
@Component({
selector: 'app-heroes',
templateUrl: './heroes.component.html',
styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
heroes: Hero[];
selectedHero: Hero;
onSelect(hero: Hero): void {
this.selectedHero = hero;
}
getHeroes(): void {
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
}
constructor(private heroService : HeroService) {}
ngOnInit() {
this.getHeroes();
}
}
这是英雄服务代码:
import { Injectable } from '@angular/core';
import { Hero } from './heroes/hero';
import { HEROES } from './heroes/mock.heroes';
import { Observable, of } from 'rxjs';
import { HeroesComponent } from './heroes/heroes.component';
@Injectable({
providedIn: 'root'
})
export class HeroService {
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
constructor() { }
}
这是奇怪的部分:如果删除
heroes: Hero[];
英雄仍然显示出来。如果没有什么方法可以绑定到subscribe方法,那怎么可能呢?如果subscription方法没有绑定到英雄,那么英雄如何显示在页面上?
所有代码均已完成,直到英雄教程https://angular.io/tutorial/toh-pt4#subscribe-in-heroescomponent
中的在HeroesComponent中订阅。答案 0 :(得分:0)
您获取英雄的服务方法:-
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
如果您在服务方法中删除了英雄,那么将不会有任何来源的英雄。