Angular ngIF не работает с моим свойством объекта, чтобы применить условие, чтобы показать и скрыть - PullRequest
0 голосов
/ 10 апреля 2019

Я пишу условие с * ngIf в моем HTML-коде.У меня есть объект, который содержит свойство, чтобы показать и скрыть элемент списка матов.

Вот код

<mat-list-item  *ngIf="object.conditionName" 
 [ngClass]="((object.show) || i%2 != 0) ? 'myCssColor' : 'odd'">

В моем коде TS

public showDetails: boolean = false;

object: [{ name: 'MyName', conditionName: 'showDetails'}];

Я сделал тест и установил * ngIf для conditionName, которое является showDetail, но пользовательский интерфейс отображает строку в элементе mat-list-item.в основном это не работало и не могло прочитать ложь.

Если бы я сделал это

*ngIf="showDetails".Это работает, и пользовательский интерфейс не показывает строку.

также *ngIf="false" тоже работает.

В каждой строке моей таблицы есть свое имя условия ngIf, например showDetail1, showDetail2 и т. Д....

Мне нужно прочитать объект и его свойство, которые являются именами моего логического класса ts.

Я не уверен, почему *ngIf="object.conditionName " не работает или не может читать.

Кроме того,

, если *ngIf="object.conditionName " в моем коде VS, intellisense не может видеть свойство объекта, но он может перечислить все свойства внутри ngClass.

Любая помощьценится.Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Я думаю, вы не понимаете, как *ngIf работает в этой ситуации.Вы не смотрите на свойство showDetails компонента, вы просто проверяете, верна ли строка "showDetails", что, конечно, так.

Если вы хотите, чтобы она указывала на свойствона компоненте вы должны специально указать это для этого, например: *ngIf="this[object.conditionName]"

0 голосов
/ 10 апреля 2019

Мне пришлось использовать это, чтобы заставить его работать

* ngIf = "это [obejct.conditionName]"

...