Есть ли способ использовать интерполяцию внутри *ngFor

<div *ngFor="let t of {{randomName}}"></div>

Я хочу передать имя массива динамически, я пробовал код выше, но я получил ошибку.

Спасибо за ответы, но я должен обновить вопрос с моим сценарием

<div formArrayName="{{obj.key}}">
 <div *ngFor="let t of formGrp.controls.{{obj.key}}.controls"></div>
</div>

Я создаю массив форм динамически, и он может иметь любое имя в зависимости от схемы. Я могу связать это динамическое имя с formArrayName, так как он поддерживает интерполяцию, но мне нужно такое же поведение в цикле

3 ответа

Решение

Это должно быть легко с использованием квадратных скобок:

<div *ngFor="let t of formGrp.controls[obj.key].controls"></div>
                                      ^^^^^^^^^

Пример Stackblitz

<div *ngFor="let t of getTheData()"></div>

getTheData метод в вашем компоненте, который возвращает данные

Проверьте пример здесь https://plnkr.co/edit/Ma66tJhpldYY4GuuM3uU?p=preview в .component.ts

<div *ngFor="let t of dynamicArr"></div>

Что вы можете сделать, это установить массив в вашем компоненте. Вместо использования строковой интерполяции.

export class SomeClass {
   dynamicArr:[];  
   updateArr(){
     // some logic
   return this.dynamicArr = dynamic Array
   }
}
Другие вопросы по тегам