我想使用动态生成的选择下拉菜单进行导航。似乎我不能直接这样做,所以我只想在选择更改时进行函数调用。
为此,我有以下几点:
---在模板中---
<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!");
}
这实际上工作正常。
我是在马克·拉科克的大力帮助下得出这一点的,他在这个老问题上给出了答案:如何在Angular 2中的“select”中获得新的选择?
也就是说,我希望能够在navSelected()函数调用中传递所选值。我不知道怎么做。
我尝试将其他搜索中的任意猜测添加到选项标记中,然后引用事件处理程序(所以:(change)=“navSelected(button.label)”
中的按钮变量和其他组合,但没有成功。我看到了很多对ngModel的引用,但它们似乎很旧,我不完全确定它们是否适用了(而且我无法让它们在RC4中工作)。
我可能会拉一些jquery或任何东西来找到select并获取它的值,但与简单地正确调用函数相比,这似乎很难做到。
而不是$事件。尝试使用下面的类型转换函数。
$any($event.target). value
这将停止模板中的类型检查。
作为@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获取目标。目标值,请参见下面的示例。
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!");
}
我正在尝试使用 考虑以下代码 每当我试图打印出的结果时,它总是返回 即使我返回一个json对象。 如何打印的结果?
哪里需要从同级组件访问元素,但不需要从父 Cmp 访问元素。 例: 需要组件 B 的 templateA 中的 iframe 元素来隐藏 或删除该元素。 index.html ComponentA.html @组件 @组件
我使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我给了剑道下拉列表的DataValueField()id和DataTextField()名称。在更改事件中,我无法获取DataValueField()。请参阅下面的代码 这是我的编辑模板。chtml 这是我的更改功能 目前我的名字是ie;DataTextField()值。相反,我需要DataValueField()。提前感谢您的建议!
我的程序需要使用变量分隔符读取具有不同数据结构的文件。在我的属性文件中,您可以设置分隔符并为不同变量的值放置坐标: 我想有一种方法可以访问具有某种坐标的列和线。 我在想这样的语法: (这将为您提供具有特定分隔符的第1行和第7列的值)有人知道可以做到这一点的库或代码片段吗?
问题内容: 有没有一种方法可以在jQuery中获取鼠标滚轮事件(而不是谈论事件)? 问题答案:
问题内容: 我已经搜索了几个小时,但找不到解决方案。 这不起作用: 好的,所以要清除一切。如果用户单击页面本身上的链接,这很容易,因为您可以向所有链接onclick事件添加事件处理程序,但是。我想捕获该地址,即用户在浏览器的url框中键入的内容。 问题答案: 因为这无法完成。新位置是私人/敏感信息。没有人希望您知道他们离开您的网站后会访问哪些网站。