Как передать несколько каналов для ngx-datatable-column в Angular? - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы спросить, есть ли у вас какие-либо идеи, как пропустить несколько каналов в Angular?

В настоящее время мой код проходит только один канал.

const customPipe1 = new CustomPipe2();
const customPipe2 = new CustomPipe2();

  <ngx-datatable-column
      [width]="width"
      [name]="cname"
      [prop]="cbindProperty"
      [pipe]="customPipe1">
  </ngx-datatable-column>

Я хочу добавить два или несколько каналов в этот столбец. Примерно так в простом html.

{{ birthday | customPipe1 | customPipe2 }}

1 Ответ

0 голосов
/ 06 сентября 2018

Это невозможно с ngx-datatable. Вы можете видеть, что здесь в исходном коде.

Однако вы можете создать другую трубу, которая делает то же самое:

Нет необходимости делать его Pipe с использованием аннотации, потому что вы не будете использовать имя, так что вам также не нужно добавлять его в объявления

export class ColumnPipe implements PipeTransform {
  pipes: any[] = [
    new BirthdayPipe(),
    new CustomPipe1(),
    new CustomPipe2()
  ];

  public transform(input: any): any {
    return this.pipes.reduce((output, pipe) => pipe.transform(output), input);
  }
}

Вполне возможно, что ваши внутренние каналы должны внедрить некоторые службы. В этом случае вам нужно добавить канал к массиву провайдеров вместе с каналами, которые нужно внедрить, и внедрить их в конструктор ColumnPipe.

...