Как использовать встроенный конвейер angular2 в файлах сценариев служб и директив

Мне нужно использовать канал даты angular2 в файлах сценариев служб и директив (не только в HTML).

У кого-нибудь есть идеи?

Не могу загрузить код, потому что некоторые ограничения политики, извините за это.

2 ответа

Решение

Поскольку CommonModule не экспортирует его как провайдера, вам придется сделать это самостоятельно. Это не очень сложно.

1) Импорт DatePipe:

import { DatePipe } from '@angular/common';

2) Включите DatePipe в провайдеров вашего модуля:

NgModule({
  providers: [DatePipe]
})
export class AppModule {
}

или поставщики компонентов:

@Component({
  selector: 'home',
  styleUrls: ['./home.component.css'],
  templateUrl: './home.component.html',
  providers: [DatePipe]
})
export class HomeComponent {
...

3) Вставьте его в конструктор вашего компонента, как и любой другой сервис:

constructor(private datePipe: DatePipe) {
}

4) Используйте это:

ngOnInit() {
    this.time = this.datePipe.transform(new Date());
}

Попробуйте что-то вроде этого:

new DatePipe().transform(myDate, 'yyyy-dd-MM');

Надеюсь, это поможет.

Другие вопросы по тегам