0

*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 の悪い習慣であると述べています。

4

1 に答える 1

0

ナビゲーションが定義されていないようです。したがって、最初にテストしてから、その隠しプロパティを確認します。

*ngIf="navigation && !navigation.hidden"
于 2016-07-09T21:24:10.437 に答える