【发布时间】:2018-09-24 20:04:22
【问题描述】:
我有一个导航菜单,它使用导航.ts json 文件呈现菜单项。当它到达 navitem 组件时,它使用 ngIf 来检查导航文件中的项目是否具有“功能”键,如果有,则所需的行为是使用对象中 item.function 中的字符串值来填充(单击)事件的值。
实际上,控制台会抛出一个错误,提示“_co.item.function is not a function”
HTML
<span class="nav-link" *ngIf="item.function" (click)="item.function()" matRipple>
<mat-icon class="nav-link-icon" *ngIf="item.icon">{{item.icon}}</mat-icon>
<span class="nav-link-title" [translate]="item.translate">{{item.title}}</span>
<span class="nav-link-badge" *ngIf="item.badge" [translate]="item.badge.translate"
[ngStyle]="{'background-color': item.badge.bg,'color': item.badge.fg}">
{{item.badge.title}}
</span>
</span>
导航.ts
[{
"id": "accounting",
"title": "Accounting",
"type": "collapse",
"children": [
{
"id" : "salesmenSalesLocation",
"title": "Salesmen Sales Location",
"type": "item",
"function": "handleSelect(ReportTypes.SalesmenSalesLocations)"
},
{
"id": "laggingLedgerEntries",
"title": "Lagging Ledger Entries",
"type": "item",
"function": "handleSelect(ReportTypes.LaggingLedgerEntries)"
}
]}]
我也尝试过 (click)="item.function" 没有成功。
【问题讨论】:
-
它可能是一个实际的函数,但就您的
item.function对象而言,它只是一个string,因此不是一个函数 -
数据从何而来?你对源头有控制权吗?确实没有安全的方法来解析它。
标签: javascript angular typescript angular5