Я знаю, что могу назвать трубу вот так:
{{ myData | date:'fullDate' }}
Здесь труба даты принимает только один аргумент. Каков синтаксис для вызова канала с большим количеством параметров, из шаблона HTML компонента и непосредственно в коде?
javascript
angular
angular2-pipe
Эран Шаби
источник
источник
arg1
иarg2
где оба необязательны, и вы только хотели передатьarg2
?undefined
в качестве первого аргумента, он получит значение по умолчанию.transform(value:any, arg1:any, arg2:any, arg3:any)
использования отдыха оператор чувствует себя лучше, я думаю:transform(value:any, ...args:any[])
Вы пропускаете реальную трубу.
Несколько параметров могут быть разделены двоеточием (:).
Также вы можете цепные трубы, вот так:
источник
Начиная с beta.16, параметры больше не передаются
transform()
методу в виде массива , а в виде отдельных параметров:https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26
источник
arg1
иarg2
где оба необязательны, и вы только хотели передатьarg2
?arg1
? КакisFullDate
. Я просто спрашиваю, потому что каждый пример использует это.'arg1'
и'arg2'
являются просто строковыми литералами, передаваемыми в качестве дополнительных параметров в канал. Вы можете использовать любое значение или ссылку, которые доступны в этой области (текущий экземпляр компонента)Я использую Pipes в Angular 2+ для фильтрации массивов объектов. Следующее принимает несколько аргументов фильтра, но вы можете отправить только один, если это соответствует вашим потребностям. Вот пример StackBlitz . Он найдет ключи, по которым вы хотите отфильтровать, а затем отфильтрует по заданному вами значению. Это на самом деле довольно просто, если это звучит сложно, не так, посмотрите пример StackBlitz .
Здесь труба вызывается в директиве * ngFor,
Вот Труба,
А вот компонент, содержащий объект для фильтрации,
Пример StackBlitz
Пример GitHub: разместите рабочую копию этого примера здесь
*Пожалуйста, обратите внимание что в ответе Гантера Гунтер утверждает, что массивы больше не используются в качестве интерфейсов фильтров, но я искал ссылку, которую он предоставляет, и не нашел ничего, касающегося этого утверждения. Кроме того, в приведенном примере StackBlitz этот код работает так, как задумано в Angular 6.1.9. Это будет работать в Angular 2+.
Удачного кодирования :-)
источник
Расширен от: user3777549
Многозначный фильтр для одного набора данных (только ссылка на ключ заголовка)
HTML
filterMultiple
источник