Select Angular2访问组件内的选择事件更改
使用Angular2s表单,并尝试找出使用selects处理事件的过程。我有一个存储在选项中的对象Heros。我想做的是,当选择I hero时,触发一个事件到父组件,该事件将对结果进行处理。然而,我找不到一个具体的例子,当选择发生变化时(即列表中的新英雄被选中),能够接收事件Select Angular2访问组件内的选择事件更改,select,typescript,angular,Select,Typescript,Angular,使用Angular2s表单,并尝试找出使用selects处理事件的过程。我有一个存储在选项中的对象Heros。我想做的是,当选择I hero时,触发一个事件到父组件,该事件将对结果进行处理。然而,我找不到一个具体的例子,当选择发生变化时(即列表中的新英雄被选中),能够接收事件 界面英雄{ id:编号; 名称:字符串; } @组成部分({ 选择器:“我的应用程序”, 模板:` {{title}} {{hero.name} ` }) 导出类AppComponent{ @Input()heros:可观
界面英雄{
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".
Mabethis.selectedHeroChange.emit(英雄)
@EricMartinez问题是它根本无法使用onHeroChange函数,因为我不确定如何/何时调用它。我正试图这样做,但实际情况是,[value]=“hero”似乎是通过toString转换的,而不是存储实际对象。为了让这个解决方案起作用,我必须让[value]=“hero.id”,然后我需要遍历onchange事件的列表,然后返回。。。。这似乎是TS的一个缺口(此功能在KO中工作)您的函数看起来如下:onheroChange(event:event):void{…}
谢谢您的提示!仅仅一年多一点,但感觉像是很久以前的事了:您不需要实现输出,
已经实现了。您应该只需要添加一个表达式,您希望在制表符更改时执行该表达式,我将…
更正上面的(已删除)注释:怎么样
[value]="hero".