Как мне интерполировать идентификатор ng-template в условие ng-if Else?

<div *ngFor="let user of users">
  <ng-template [attr.id]="'tileInactiveContent'+user">
    something...
  </ng-template>
  <div *ngIf="somecondition;else tileInactiveContent+{{ user }}">
    something...
  </div>
</div>

В приведенном выше коде пользователи представляют собой строковый массив из 4 строк.

Следовательно, в конечном коде генерируются 4 ng-шаблона, каждый из которых имеет уникальный идентификатор.

Вопрос

Как обращаться к идентификаторам в другой части директивы ngIf? Чем можно заменить ' tileInactiveContent+{{ user }} '?

Я знаю, что ng-template можно вызывать с обратным условием if. Но все равно..


person Abhinav    schedule 20.07.2020    source источник
comment
Зачем использовать уникальный идентификатор для каждой итерации? создание динамической переменной шаблона невозможно в angular   -  person Rafi Henig    schedule 20.07.2020
comment
почему вы хотите включить пользователя в идентификатор ng-template?   -  person Gérôme Grignon    schedule 20.07.2020
comment
@RafiHenig, вы подразумеваете, что *ngFor сам определяет это, даже если для всех шаблонов указан один и тот же идентификатор?   -  person Abhinav    schedule 20.07.2020
comment
Вы используете один и тот же шаблон для всех итераций?   -  person Rafi Henig    schedule 21.07.2020


Ответы (1)


Вызовите функцию Ts из самого шаблона и напишите логику в этой функции

getWhatever(index:any,user:User){
//do and return something
}
<div *ngFor="let user of users;let i=index;">
  <ng-template [attr.id]="'tileInactiveContent'+user">
    something...
  </ng-template>
  <div *ngIf="somecondition;else getWhatever(i,user)">
    something...
  </div>
</div>

person Tushar Wason    schedule 20.07.2020
comment
привязка функций не является хорошим подходом к производительности, она всегда слушает html - person pc_coder; 20.07.2020
comment
Но как это отображает требуемый ng-шаблон вместо div? - person Abhinav; 20.07.2020