【发布时间】:2016-11-26 21:43:41
【问题描述】:
我想使用动态生成的选择下拉菜单进行导航。 看来我不能直接这样做,所以我只想在选择更改时进行函数调用。
为此,我有这个:
---在模板中---
<select (change)="navSelected($event)">
<option *ngFor="let button of navButtons;"
value="button.route" >{{button.label}}</option>
</select>
只要说“navButtons”是一个具有“标签”字段的对象数组就足够了。
---在课堂上---
navSelected(navName) {
console.log(navName + " Clicked!");
}
这实际上工作正常。
在 Mark Rajcok 的大力帮助和他在这个较早的问题中的回答中,我达到了这一点: How can I get new selection in "select" in Angular 2?
也就是说,我希望能够在 navSelected() 函数调用中传递选定的值。我不确定该怎么做。
我尝试将其他搜索中的疯狂猜测添加[ngValue]="button" 到选项标签,然后在(change) 事件处理程序中引用button 变量(因此:(change)="navSelected(button.label)" 和其他组合,但无济于事。我看过很多对 ngModel 的引用,但它们看起来很旧,我不完全确定它们是否适用(而且我无法让它们在 RC4 中正常工作)。
我可能会拉出一些 jquery 或其他任何东西来找到选择并获得它的值,但与简单地能够正确调用函数相比,这似乎非常糟糕。
【问题讨论】:
-
你需要获取button.route还是button.label?
-
任一。实际上,按钮对象中的任何内容都表示选择了哪个项目。即使是 ngFor 的索引也可以。
标签: javascript angular