作为开发人员,您必须决定什么是“坏数据”以及什么是可接受的替代方案。
然后你必须在它到达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()
在你的应用程序中,替换你调用 vanilladust.js 的地方:
应用程序.js
...
var dust = require('./local-dust-helpers');
...
然后,您可以像使用原生的dust.js 指令一样使用它:
模板.尘埃
Hello {name}!
You have {@integerOrElse value='{count}' fallback='some' /} new messages