[div6,Angular6(click)未通过事件

问题描述 投票:0回答:3

我正在关注:https://coursetro.com/posts/code/59/Angular-4-Event-Binding

enter image description here

我的代码如下:我在按钮的位置使用div:

<div (click)="updateSelectedLanguage($event)">
    <!-- More items -->
</div>

和:

  updateSelectedLanguage(event : any) {
    console.log(event);
  }

但是,事件始终是未定义的。我在这里想念什么?

angular
3个回答
1
投票
在这种情况下,模板中的[$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

0
投票
在给定的示例中,它的标记是一个按钮,因此当您传递$ event时,您会传递按钮click事件。按钮具有预定义的结构,这将是该事件的一部分。

在您的情况下,您将其附加到div,div没有预定义的结构,您必须将其与数据一起提供给它们,例如ngModel或ngForm结构。


-1
投票
您通过的

item是什么?是否需要传递一些变量。如果要在单击HTML的函数中传递事件参数,则需要传递$ event。

© www.soinside.com 2019 - 2024. All rights reserved.