{amp}lt;div *ngIf="store[obj?.FundCode   obj?.PayWith].status == 'fail'"{amp}gt;test{amp}lt;/div{amp}gt; 

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

 {amp}lt;div *ngIf="store[obj?.FundCode   obj?.PayWith.split(/[ ,] /).join('-')].status == 'fail'"{amp}gt;test{amp}lt;/div{amp}gt; 

когда я использую функцию split внутри ngIf как описано выше, приложение ngIf ошибку: ошибка синтаксического анализа шаблона. У меня возникли проблемы, чтобы выяснить, как выйти из функции split и правильно ее выполнить.

Я предпочитаю не использовать сложный синтаксис внутри HTML, даже если это истинный синтаксис; это будет сбит с толку.

Вы можете использовать функцию получения в качестве переменной; просто так:

 get isFailed() : boolean { // Check if obj is defined to avoid errors. if(! this.obj) return false; let key = this.obj.FundCode   obj?.PayWith.split(/[ ,] /).join('-'); return this.store[key].status == 'fail'; } 

Затем используйте эту переменную в HTML:

 {amp}lt;div *ngIf="isFailed"{amp}gt; test {amp}lt;/div{amp}gt; 

Это будет понятнее и должно решить вашу проблему.

Узнайте больше о получить