如何在angular2中获取选择更改事件中的值
How to get the value in a select change event in angular2
我想使用动态生成的选择下拉菜单进行导航。我似乎不能直接这样做,所以我只想在选择更改时进行函数调用。
要做到这一点,我有这个:
---在模板中---
<select (change)="navSelected($event)">
<option *ngFor="let button of navButtons;"
value="button.route" >{{button.label}}</option>
</select>
只要说"navButtons"是一个具有"label"字段的对象数组就足够了。
---在课堂上---
navSelected(navName) {
console.log(navName + " Clicked!");
}
这实际上很有效。
我之所以走到这一步,得益于Mark Rajcok的大力帮助和他对这个老问题的回答:我如何在";选择";在Angular 2中?
也就是说,我希望能够在navSelected()函数调用中传递选定的值。我不知道该怎么做。
我曾尝试将来自其他搜索的猜测添加到选项标记中的[ngValue]="button"
,然后在(change)
事件处理程序中引用button
变量(所以:(change)="navSelected(button.label)"
和其他组合框,都没有用。我看到了很多对ngModel的引用,但它们似乎很旧,我不完全确定它们是否适用(而且我无论如何都无法在RC4中使它们工作)。
我可能可以提取一些jquery或其他什么来找到select并获得它的值,但与简单地正确调用函数相比,这似乎非常糟糕。
您要查找的值在$event.target
上,您可以使用$event.target.value
获得它,请参阅下面的示例。
navSelected($event) {
console.log($event.target.value + " Clicked!");
}
如果你想获得选项的选定文本,你可以做这个
navSelected($event) {
let selectElement = $event.target;
var optionIndex = selectElement.selectedIndex;
var optionText = selectElement.options[optionIndex];
console.log(optionText + " Clicked!");
}
作为@eltonkamami答案的快捷方式,您可以这样传递对象:
<select (change)="navSelected(navButtons[$event.target.selectedIndex])">
<option *ngFor="let button of navButtons;">{{button.label}}</option>
</select>
并像这样捕捉:
navSelected(button: [type of navButtons]){
console.log(button);
}
而不是$event。请尝试使用以下类型转换函数。
$any($event.target).value
这将停止模板中的类型检查。
相关文章:
- 日期选取器单击事件获取日期
- 谷歌地图事件-获取点击元素的父级
- 使用事件获取 CKEDITOR ID 和值
- 数据表 - 通过单击事件获取当前行的数据库 ID
- 如何使用 Scrapy 从点击事件获取链接
- 在 JavaScript 中从一次点击事件到其他事件获取价值
- 如何从 MSPointerMove 事件获取指针的当前位置
- 从 IE9 拖放事件获取文件位置
- 从 jquery 事件获取自定义数据
- Jqgrid 使用 afterSubmit 事件获取新添加记录的 ID
- 使用onsubmit事件获取查询字符串
- 从单击事件获取值
- 主干自定义事件:获取调用者对象
- Javascript本地文件保存或onSave事件获取保存的文件名
- 通过body上的mousmove事件获取鼠标所在的元素
- Mixpanel -根据跟踪的事件获取用户(distinct_id或其他属性)
- 使用onchange事件获取选择颜色列表的值,以便更改图片
- 如何从一个按钮单击事件获取值到另一个按钮单击事件
- 使用javascript输入事件获取键代码
- 如何通过原型点击事件获取文本区域的文本