Dojo lang.replace()
用undefined
文本替换未定义的占位符。是否可以在占位符中定义默认值?
假设我想要以下占位符:
<div class="message">The query returned {result.rows:0} rows</div>
占位符将替换为返回的行数,但是当变量rows
不可用时(对于exapmle,结果包含错误消息),它将替换为0.
答案 0 :(得分:3)
您可以考虑两种方法。第一种是将results
对象与默认值混合,然后再将其传递给replace
函数。
var defaults = {
rows: 0
};
var data = lang.mixin(lang.clone(defaults), result);
lang.replace(template, data);
第二种方法是传递一个知道如何在缺失时默认值的函数,而不是传递数据对象。
http://dojotoolkit.org/reference-guide/1.9/dojo/_base/lang.html#with-a-function