首页 > 解决方案 > 将带值的参数传递给函数不能按预期工作

问题描述

我正在使用 Anular 9 和 Angular Material 开发一个小型应用程序。我有一个项目列表,每个项目都有一个“编辑”按钮。我试图editItem()通过 URL 将项目的 id 传递给方法,而不是“传统上”(出于安全原因),但是这样:

在模板中:

<div class="item-name">{{node.item.name}}</div>
<button mat-icon-button color="primary" (click)="editItem($event, id:string = node.item.id)">Edit</button>

在 .ts 文件中:

editItem(event, id): void {
    event.stopPropagation();
    console.log("Item id is: " + id);
}

Missing expected ) at line <line number>我得到一个错误,而不是预期的结果。

我究竟做错了什么?什么是(简单)可行的替代方案?

标签: javascriptangulartypescript

解决方案


正如评论所暗示的,Angular 模板中没有命名参数的概念。您在文件中定义函数,.ts然后在文件中调用该函数.html

你应该像这样调用你的函数:

<button mat-icon-button color="primary" (click)="editItem($event, 
node.item.id)">Edit</button>

推荐阅读