Настроить Angular трубы - PullRequest
       11

Настроить Angular трубы

0 голосов
/ 02 марта 2020

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

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

Я использую два объекта (элемент и десятичные знаки), которые я указал ниже.

'item': {
'itemID': 'id',
'name:' 'itemName'
'feature': 'feature'
'price': 200
}
'decimalPlace': {
'decimals': 2
'itemID': 'id'
}

В настоящее время я пытаюсь сделать так, чтобы я вызывал метод getDecimals (который возвращает объект decimalsPlaces) в конструкторе канала, а затем определяю имя элемента с помощью строковой интерполяции. Пример:

{{ item.price | customisedPipe: {{ item.itemId }} }}

Внутри класса канала я использую функцию find () для сравнения 'item.itemId' и decimalPlace.decimals, если их совпадение, то я преобразовываю значение, чтобы вернуть значение десятичных разрядов.

Таким образом, это работает, но мне сказали не использовать этот способ. Итак, я буду признателен, если кто-то может предложить любое другое решение.

Пожалуйста, дайте мне знать, если этот вопрос не имеет смысла.

1 Ответ

0 голосов
/ 02 марта 2020

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

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

...