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?
Schöne Antwort, ich ging genau dafür, und Sie nagelten es besser als das, was ich schrieb. – gonchuki
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
feste gebrochene Geigenverbindung. – SgtPooki