2012-08-28 12 views
5

Ich versuche, eine mustache.js Vorlage einzurichten, die eine Zahl auf eine bestimmte Dezimalstelle mit einem Lambda formatiert, und ich bin in Probleme. obwohlMoustache.js lambdas und Zahlenformatierung toFixed

var template = "{{x}}{{#points}}<br/>{{name}}, {{#y.toFixed}}2{{/y.toFixed}}"; 

Das hat nicht funktioniert (erzeugt ein leerer Raum, wo die Zahl sein sollte ich: Gegeben ein Objekt, das wie folgt aussieht:

{ 
    x: 123, 
    points: [ 
      { name: "foo", y: 1.234567 }, 
      { name: "bar", y: 2.123456 }, 
      { name: "fax", y: 3.623415 } 
    ] 
} 

Zuerst habe ich versucht, eine Vorlage einrichten, der aussah. . vielleicht das Lambda war nicht im richtigen Format, da toFixed keine Funktion (mustache docs) zurückkehrt Also habe ich versucht:

Number.prototype.toMustacheFixed = function(){ 
    var n = this; 
    return function(d){ return n.toFixed(d); }; 
}; 
var template = "{{x}}{{#points}}<br/>{{name}}, {{#y.toMustacheFixed}}2{{/y.toMustacheFixed}}" 

Wieder scheitert ich habe sogar versucht, die toMustacheFixed f vereinfacht wird. Anschluss an:

Number.prototype.toMustacheFixed = function(){ 
    return function(){ return 123.45; }; 
}; 

Das hat nicht geholfen. Ich habe immer noch eine Lücke in der Vorlage bekommen. Also, kann Moustache.js einfach nicht mit nativen und Prototyp-Funktionen auf Zahlen umgehen, oder mache ich etwas falsch?

Antwort

10

es auf diese Weise versuchen: http://jsfiddle.net/QXFY4/10/

ich Ihren Abschnitt fertig: {{/points}}

ich http://mustache.github.com/mustache.5.html

Mit dieser Funktion toFixed entsprechend das Beispiel in dem Lambda Abschnitt hinzugefügt, konnte ich Ändern Sie das Rendering von {{y}}, indem Sie das Float analysieren und toFixed darauf aufrufen.

+0

Schöne Antwort, ich ging genau dafür, und Sie nagelten es besser als das, was ich schrieb. – gonchuki

+0

Schön. Das ist die gleiche Schlussfolgerung, die ich auch erreicht habe (aber ich wollte nicht derjenige sein, der seine eigene Frage beantwortet). Vielen Dank! – roto

+0

feste gebrochene Geigenverbindung. – SgtPooki