2016-12-22 1 views
4

Ich brauche die date pipe von angle2 in Skripten von Services und Direktiven (nicht nur in HTML).Wie benutze ich die eingebaute date pipe von angular2 in Skripten von Services und Direktiven

Hat jemand Ideen?

Code kann nicht hochgeladen werden, da einige Einschränkungen, sorry.

+1

@Community, was ich fragen will, ist, wie angular2 Datum Rohr in Dienste und Richtlinien zu verwenden, nicht nur in der Komponente, die mit Frage unterscheidet https://stackoverflow.com/questions/36816548/how-to-a-pipe-in-a-component-in-angular-2 jetzt, also bitte helfen Sie, Ihr Tag zu korrigieren. –

Antwort

18

Da CommonModule es nicht als Provider exportiert, müssen Sie es selbst tun. Das ist nicht sehr kompliziert.

1) Import DatePipe:

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

2) Fügen Sie DatePipe in Anbieter Ihres Moduls:

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

oder Anbieter der Komponente:

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

3) es in Ihrer Komponente injizieren Konstruktor wie jeder andere Dienst:

constructor(private datePipe: DatePipe) { 
} 

4) Verwenden Sie es:

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

Vielen Dank @Alexander, es funktioniert für mich, aber ich muss DatePipe importieren wie dieser'import {DatePipe} von '@ angular/common/src/pipes'; sonst zeigt Webstorm einen Fehler an. –

+0

@LarryChen, das bedeutet nur, dass mit deinem Setup etwas nicht stimmt, meines versteht es. Möglicherweise verwenden Sie die alte Version von ng2 oder WebStorm. –

+0

meine Version: '" @ angular/common ":"^2.3.0 "', webstorm: 2016.3.2 –

4

versuchen, etwas wie folgt aus:

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

Hope this helfen.

+0

Danke Avnesh, Ich fand den Konstruktor von DatePipe ist 'Konstruktor (_locale: string)', Ihr Vorschlag verpasste einen Parameter, aber trotzdem hat es mich sehr inspiriert. –

+2

Beispiel Code kombiniert beide Antworten 'neue DatePipe ('en-US'). Transformieren (myDate, 'JJJJ-TT-MM');' – Chimu

Verwandte Themen