2017-12-16 2 views
1

I, wie in diesem Beispiel Funktionen in Modellen verwenden:Angular: Rohre vs Methoden in Modell

//user.madel.ts 
User { 
... 
getFullname() {return this.firstname + ' ' + this.lastName;} 
..} 
// in html I can do that 
<span> {{user.getFullName()}} <span> 

Ist es richtig, oder soll ich Rohre verwenden?

+1

aus einer objektorientierten Perspektive sollte das Modell private Privilegien haben, um auf seine eigenen Eigenschaften zuzugreifen und sie zu ändern. Pipes sind mehr für die Umwandlung eines Wertes zur Anzeige. Wenn Sie zum Beispiel FullName groß schreiben möchten, dann würden Sie mit der Eigenschaft zugreifen Die Modellmethoden und die Pipe werden ihren Wert transformieren, um sie auf andere Weise anzuzeigen. – Mehdi

+2

Was Sie haben, ergibt Sinn. – DeborahK

+0

Ist es nicht teuer, wie oft die Methode heißt? –

Antwort

1

Eckrohre funktionieren am besten mit einem einzigen Wert, da reine Rohre Leistungsvorteile haben. Da sowohl firstnamelastname und verändert werden sollen, zu erwarten, reines Rohr keine Option ist, und es wird entweder als

{{ user.firstname | fullname(user.lastname }} 

oder

{{ user | fullname }} 

unreinen Rohrende, die keine Leistungsvorteile hat über Getter-Methode.

Wenn Berechnungen kostengünstig sind, kann es entweder Getter-Methode oder get Eigenschaftenaccessor sein:

get fullname() {return this.firstname + ' ' + this.lastname;} 

Ansonsten zurückgegebene Wert sollte aus Leistungsgründen zwischengespeichert werden.