我正在关注:https://coursetro.com/posts/code/59/Angular-4-Event-Binding
我的代码如下:我在按钮的位置使用div:
<div (click)="updateSelectedLanguage($event)">
<!-- More items -->
</div>
和:
updateSelectedLanguage(event : any) {
console.log(event);
}
但是,事件始终是未定义的。我在这里想念什么?
$event
保留变量,将有关单击的事件信息(位置,目标等)传递给控制器。但是,您正在传递模板item
,但似乎未定义。因此,在控制器中,您会看到undefined
。然后,您应该传递定义的内容,例如:<div (click)="updateSelectedLanguage('es')">
<!-- More items -->
</div>
<div (click)="updateSelectedLanguage('en')">
<!-- More items -->
</div>
或者也许您想获取事件的目标(单击的div)?
<div (click)="updateSelectedLanguage($event)"> <!-- More items --> </div> updateSelectedLanguage(event : any) { console.log(event.target); }
[Edit”作者的主要文章版本:
然后,您的代码还有其他问题。这里有一个示例,说明您的代码片段运行正常:https://stackblitz.com/edit/angular-dxmcsh
在您的情况下,您将其附加到div,div没有预定义的结构,您必须将其与数据一起提供给它们,例如ngModel或ngForm结构。
item是什么?是否需要传递一些变量。如果要在单击HTML的函数中传递事件参数,则需要传递$ event。