Lodash - Фильтр на основе того, содержит ли массив значение, затем сопоставляет и объединяет отдельную строку в виде запятой в шаблоне Angular HTML - PullRequest
0 голосов
/ 25 сентября 2019

Используя lodash в HTML-разметке приложения Angular, мне нужно отфильтровать по тому, содержит ли массив значение, затем отобразить, чтобы получить одно из свойств, и объединить результаты в виде строки, разделенной запятой.

Это JSON для «атрибута»:

 {
        "ValueIntArray": [ 14, 15 ],
        "Options": [
          {
            "Id": 13,
            "Name": "Opt A"
          },
          {
            "Id": 14,
            "Name": "Opt B"
          },
          {
            "Id": 15,
            "Name": "Opt C"
          }
        ]
      }

Итак, на основании этого я хочу увидеть результат: «Опция B, Опция C»

Однако я получаю следующееошибка:

Ошибка синтаксического анализатора: привязки не могут содержать назначения

Это код, который я пытаюсь использовать для достижения этой цели, если я удаляю часть «фильтра», то онаотображает разделенный запятыми список всех опций, поэтому я знаю, что эта часть работает, поэтому проблема возникает только из-за части фильтра.

{{lodash(attribute.Options).filter(o => lodash.includes(attribute.ValueIntArray, o.Id)).map('Name').join(', ')}}

1 Ответ

0 голосов
/ 25 сентября 2019

Мне удалось решить эту проблему с помощью следующего:

{{lodash(attribute.Options).keyBy('Id').at(attribute.ValueIntArray).map('Name').join(', ')
...