2016-08-07 34 views
0

Ich arbeite an einer Direktive, die ein Datum mit der UI Bootstrap Datepicker erfassen, aber ich möchte das eingegebene Datum vor der Übergabe an das gebundene Modell mit der ngModel-Direktive formatieren. Dies führt mich zu der Implementierung eines Parsers, an der Schnittstellendefinition sucht es wie folgt aussieht:Wie implementiert man einen ngModel Parser mit Typescript

interface IModelParser { 
    (value: any): any; 
} 

Wenn ich versuche, eine Klasse ‚DateFilter‘ deren Umsetzung, die Intellisense hält zeigt mir dieses genannt zu definieren:

Type ‚DateFilter‘ sieht die Signatur nicht übereinstimmt ‚(Wert: jeder): any‘

Also ich würde gerne wissen, wie ich es umsetzen müssen, da es Namen, dass keine Methode oder Eigenschaft ist Definition. Ich weiß, dass das eine so grundlegende Frage ist, aber ich habe nach einem Beispiel oder einer Dokumentation gesucht, die bisher noch keinen Erfolg hatte. Vielen Dank im Voraus für jede Hilfe.

Antwort

0

Ich habe es gerade in der Typoskript-Dokumentation für Interfaces gefunden. Es stellt sich heraus, dass dies eine Funktionstypdefinition ist. So sieht meine Implementierung nun wie folgen aus:

private dateFilter: ng.IModelParser = function (value: any): any { 
     //Parse the value here 
} 

und jetzt ist ich die Lage, es in die ngModel Parser zu schieben:

ngModel.$parsers.push(this.dateFilter);