Select Angular2访问组件内的选择事件更改

Select Angular2访问组件内的选择事件更改,select,typescript,angular,Select,Typescript,Angular,使用Angular2s表单,并尝试找出使用selects处理事件的过程。我有一个存储在选项中的对象Heros。我想做的是,当选择I hero时,触发一个事件到父组件,该事件将对结果进行处理。然而,我找不到一个具体的例子,当选择发生变化时(即列表中的新英雄被选中),能够接收事件 界面英雄{ id:编号; 名称:字符串; } @组成部分({ 选择器:“我的应用程序”, 模板:` {{title}} {{hero.name} ` }) 导出类AppComponent{ @Input()heros:可观

使用Angular2s表单,并尝试找出使用selects处理事件的过程。我有一个存储在选项中的对象Heros。我想做的是,当选择I hero时,触发一个事件到父组件,该事件将对结果进行处理。然而,我找不到一个具体的例子,当选择发生变化时(即列表中的新英雄被选中),能够接收事件

界面英雄{
id:编号;
名称:字符串;
}
@组成部分({
选择器:“我的应用程序”,
模板:`
{{title}}
{{hero.name}
`
})
导出类AppComponent{
@Input()heros:可观察
@输出(“selectedHeroChange”)selectedHeroChange:EventEmitter=新的EventEmitter
onHeroChange(英雄:英雄){
此。选择HeroChange.\u下一步(英雄);
}    
}

提前谢谢

在选择更改时执行代码,并使用
id
属性或
索引作为值`:


{{hero.name}
从事件中获取所选值

onHeroChange(事件:事件):无效{
英雄,英雄,英雄(
(Hero Hero)=>Hero.id==(event.target作为SelectElement.value);
//Hero=heros[int.parse((event.target作为SelectElement.value)];
selectedHero=英雄;
选择HeroChange.add(英雄);
}
另见


另请参见

似乎ng2中存在一个漏洞,即select无法处理对象。现在有一个工作循环


您可以使用

[ngValue]="hero" 
而不是

[value]="hero".

Mabe
this.selectedHeroChange.emit(英雄)
@EricMartinez问题是它根本无法使用onHeroChange函数,因为我不确定如何/何时调用它。我正试图这样做,但实际情况是,[value]=“hero”似乎是通过toString转换的,而不是存储实际对象。为了让这个解决方案起作用,我必须让[value]=“hero.id”,然后我需要遍历onchange事件的列表,然后返回。。。。这似乎是TS的一个缺口(此功能在KO中工作)您的函数看起来如下:
onheroChange(event:event):void{…}
谢谢您的提示!仅仅一年多一点,但感觉像是很久以前的事了:您不需要实现输出,
已经实现了。您应该只需要添加一个表达式,您希望在制表符更改时执行该表达式,我将
更正上面的(已删除)注释:怎么样
[value]="hero".