我正在尝试使用 *ngIf 来显示和隐藏基于其构建的类的成员的元素。但是尽管能够使用其他数据成员来显示标题等,但我仍然遇到以下错误。
TypeError: Cannot read property 'hidden' of undefined
我的 html 看起来像
...
<md-list-item *ngFor="let navigation of flatNavList"
(click)="onSelect(navigation)" *ngIf="navigation.hidden==false">
{{navigation.title}}
</md-list-item>
...
我的 *component.ts 文件中的导航数组定义为
...
flatNavList: Navigation[];
...
和导航类看起来像
export class Navigation {
constructor(
public name: string,
public title: string,
public icon: string,
public location: string,
public hidden: boolean,
public roles: string[],
public children: Navigation[]
) { }
}
如果我删除 *ngIf 一切都很好。为什么我可以使用 navigation.title 显示名称,但不能使用 navigation.hidden 切换元素是否显示?
编辑 - - - - - - - - - - - - - - -
[hidden]="navigation.hidden"
但是有几篇文章说这在 Angular 2 中是不好的做法