私はhandlebars.jsを使っています。私はヘルパーでいくつかの数字を書式化したいと思います。数値を書式設定するには、私の期待を満たすと思われるaccounting.jsライブラリがあります。ここで引数オブジェクトを関数にどのように送信するのですか?
// Simple `format` string allows control of symbol position (%v = value, %s = symbol):
accounting.formatMoney(5318008, { symbol: "GBP", format: "%v %s" }); // 5,318,008.00 GBP
が私の現在のヘルパーです::私は使用することができます番号書式を設定するには
Handlebars.registerHelper('amount', function(item) {
if (item == null) {
return "-";
} else {
return accounting.formatMoney(item,{symbol: "EUR", format: "%v %s"});
}
});
これは、使用中の厳格なビットを動作しますが、これを、私は私の数値をフォーマットできるようにしたいのですがオプション。私の新しいヘルパーは次のようになります。
Handlebars.registerHelper('amount', function(item, options) {
if (item == null) {
return "-";
} else {
return accounting.formatMoney(item,options);
}
});
問題は、私は労働者にオブジェクトを渡す方法がわからないので、それが動作しないということです。私は内部の\とコメントの前後に引用符と二重引用符でそれを使用する場合は
handlebars.js:1659 Uncaught Error: Parse error on line 87:
...gramme.amountIssued {symbol: "EUR", for
-----------------------^
Expecting 'CLOSE_RAW_BLOCK', 'CLOSE', 'CLOSE_UNESCAPED', 'OPEN_SEXPR', 'CLOSE_SEXPR', 'ID', 'OPEN_BLOCK_PARAMS', 'STRING', 'NUMBER', 'BOOLEAN', 'UNDEFINED', 'NULL', 'DATA', 'SEP', got 'INVALID'
:ここに私の呼び出しは、テンプレートに
{{amount programme.amountIssued {symbol: "EUR", format: "%v %s"} }}
ですこれは私に次のような結果になります
{{amount programme.amountIssued "{symbol: \"EUR\", format: \"%v %s\"}" }}
この結果は期待通りではありません。
{symbol: "EUR", format: "4,000,000,000.00 %s"}%v
の代わりに4,000,000,000.00 EUR
一般的なヒント:JSオブジェクトは** JSONと同じものではありません**。それが「オブジェクト」と呼ぶだけです。一般的な混乱ですが、この2つのことは実際には非常に異なるので、それらを混ぜ合わせないことが重要です。 – Tomalak