Как создать шаблон динамического c html с литералами шаблона и * ngFor в Angular - PullRequest
1 голос
/ 16 января 2020

Я работал над компонентом toast, который будет принимать теги html в виде строки. Следовательно, мне нужно l oop через указанный ниже массив errorMsgs и динамически создавать список, но проблема в том, что у меня есть * ngFor внутри него, и он зацикливает массив, но я не могу напечатать "msg" в шаблоне.

Скажите, пожалуйста, есть ли способ l oop через массив, построить список и вернуть его в виде строки.

const errorMsgs = ['Not Found', 'Server Error'];

private getMessagesAsHtml(errorMsgs: string[]){
        return `
            <ul>
                <li *ngFor="let msg for ${errorMsgs}">
                    {{msg}}
                </li>
            </ul>
        `;
    }

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Наконец я решил это, используя только ES6.

const errorMsgs = ['Not Found', 'Server Error'];

private getMessagesAsHtml(errorMsgs: string[]){
     return `
           <ul>
              ${errorMsgs.map(msg => `
                  <li> ${msg} </li>
                `)}
           </ul>
        `;
     }
0 голосов
/ 16 января 2020

Я думаю, что вместо

<li *ngFor="let msg for ${errorMsgs}">
    {{msg}}
</li>

Вы должны использовать это так:

<li *ngFor="let msg of ${errorMsgs}">
    {{msg}}
</li>

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...