2016-07-08 10 views
0

* ngIfを使用して、その要素が構築されているクラスのメンバに基づいて要素を表示および非表示にしようとしています。しかし、私は私のHTMLは私の* component.tsファイルのナビゲーションアレイとAngular2隠蔽要素クラスメンバ

... 
<md-list-item *ngFor="let navigation of flatNavList" 
    (click)="onSelect(navigation)" *ngIf="navigation.hidden==false"> 
    {{navigation.title}} 
</md-list-item> 
... 

のように見えるなど、タイトルを表示するために、他のデータメンバを使用することができることにもかかわらず、

TypeError: Cannot read property 'hidden' of undefined 

を次のエラーに遭遇しておきます

のように見える
... 
flatNavList: Navigation[]; 
... 

とナビゲーションクラスとして定義され10

すべてのレンダリングが* ngIfであれば削除します。なぜnavigation.titleを使って名前を表示できますか?しかし、navigation.hiddenを使って要素が表示されているかどうかを切り替えることはできません。

EDIT ------------------------------

[hidden]="navigation.hidden" 

しかし、いくつかの記事では、これは悪いことを言います角度2での練習

+0

それはコンパイルする原因となること – yurzui

+0

を.hidden'が、それは私に機能 – JME

+0

何を与えるものではありませんナビゲーション 'のようなエルビス演算子を使用してみてください? '* ngIf =" navigation.hidden == false "'の代わりに '{{navigation?.hidden}}'を ''の中に追加して、それに含まれる値を確認してください。私には 'flatNavList'に' null'要素があるようです。 –

答えて

0

ナビゲーションが未定義になることがあります。その後、 それについてだから、最初のテストとその隠されたプロパティをチェック:

*ngIf="navigation && !navigation.hidden"