Есть ли способ использовать интерполяцию внутри *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>
^^^^^^^^^
<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
}
}