我有一个列表,在选择列表项时,我正在调用onSelect()
。
在onSelect()
中,我将所选值放在selectedHero变量中。如何在其他组件中的selectedHero变量中使用此值。我的代码如下所述。
import { Component } from '@angular/core';
export class Hero {
name: string;
}
const HEROES: Hero[] = [
{ name: 'STWX1' },
{ name: 'STWX2' },
{ name: 'STWX3' },
{ name: 'STWX4' }
];
@Component({
selector: 'my-app',
template: `
<div style="display: inline-block; width = 200px; ">
<ul class="heroes">
<li *ngFor="let hero of heroes" (click)="onSelect(hero)"
[class.selected]="hero === selectedHero">
<p>{{hero.name}}</p>
</li>
</ul>
</div>'
,
styles: [...]
})
export class AppComponent {
public showStyle: boolean = false;
name = 'Angular1';
testRequestId = '3224';
heroes = HEROES;
selectedHero: Hero;
goToDivClick() {
return HEROES;
}
onSelect(hero: Hero): void {
this.selectedHero = hero;
}
}
如何在其他组件中使用this.selectedHero值。
答案 0 :(得分:0)
这取决于您要将值传递到的其他组件的位置。如果他们是上述组件的子项,那么您可以使用@Input() 装饰器。在其他情况下,您必须使用服务。
答案 1 :(得分:0)
您可以使用指令[valueToPass] =“valuepassed”传递传递值,并使用 @Input()valueToPass 装饰器接收它。
或者您可以使用服务,因为使用提供程序注入单个服务实例,因此您可以在该服务中设置一些值,并且可以在同一模块内的另一个组件中访问该值