あなたは開発者として、何が「悪いデータ」であり、何が許容可能な代替物であるかを決定する必要があります。
次に、dust.js に到達する前にコード (ページを構築する node.js など) で変換するか、適切なフォールバックで必要なものをレンダリングするヘルパーを作成する必要があります。たとえば、整数をレンダリングし、それ以外の場合はカスタム フォールバック テキストを表示する場合は、次のようなヘルパーを使用できます。
integerOrElse関数を作成し、ファイルに保存します。
local-dust-helpers.js :
// this extends dustjs-helpers (which must therefore be in package.json)
var dust = require('dustjs-helpers');
dust.helpers.integerOrElse = function (chunk, ctx, bodies, params) {
// tap function resolves variables in params
var value = dust.helpers.tap(params.value, chunk, ctx),
fallback = dust.helpers.tap(params.fallback, chunk, ctx) || '';
// define a fallback for the fallback :) ----------------^^^^^
// for more brevity, you could do this in one line with a ternary operator
if (!isNaN(value) && parseInt(value) == value) {
return chunk.write(value);
} else {
return chunk.write(fallback);
}
}
次にrequire()
、アプリで、バニラのdust.jsを呼び出した場所を置き換えます。
app.js
...
var dust = require('./local-dust-helpers');
...
その後、ネイティブの Dust.js ディレクティブと同じように使用できます。
テンプレート.ダスト
Hello {name}!
You have {@integerOrElse value='{count}' fallback='some' /} new messages