我还没有弄清楚什么英雄是绑定到订阅方法的内部。当我摆脱英雄类型,不知何故,它仍然显示我的所有英雄在页面上。因此,如果英雄在服务中没有什么可绑定的,它如何仍然能够显示我的英雄呢?
下面是包含订阅方法的组件:
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[];
英雄们仍然被展示出来。如果没有任何可绑定到的订阅方法,这怎么可能呢?如果订阅方法没有绑定到英雄,那么英雄是如何显示在页面上的?
所有的代码都是在“英雄@ https://angular.io/tutorial/toh-pt4#subscribe-in-heroescomponent教程”的HeroesComponent中完成的。
发布于 2019-06-05 07:53:21
你招来英雄的服务方法:-
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
如果你删除了你的服务方法中的英雄,那么就不会有来自任何来源的女主角。
https://stackoverflow.com/questions/56455351
复制相似问题