Javascript Dojo lang.replace-如何提供默认值,而不是';未定义';?

Javascript Dojo lang.replace-如何提供默认值,而不是';未定义';?,javascript,dojo,replace,Javascript,Dojo,Replace,Dojolang.replace()将未定义的占位符替换为未定义的文本。是否可以在占位符中定义默认值 假设我想要以下占位符: <div class="message">The query returned {result.rows:0} rows</div> 查询返回了{result.rows:0}行 占位符将替换为返回的行数,但当变量rows不可用时(例如,结果包含错误消息),占位符将替换为0

Dojo
lang.replace()
将未定义的占位符替换为
未定义的
文本。是否可以在占位符中定义默认值

假设我想要以下占位符:

<div class="message">The query returned {result.rows:0} rows</div>
查询返回了{result.rows:0}行

占位符将替换为返回的行数,但当变量
rows
不可用时(例如,结果包含错误消息),占位符将替换为0结果对象传递到
替换
函数之前,将其与默认值混合

var defaults = {
    rows: 0
};
var data = lang.mixin(lang.clone(defaults), result);

lang.replace(template, data);
第二种方法不是传递一个数据对象,而是传递一个函数,该函数知道在丢失值时如何默认值


寻找这个答案已经有一段时间了,在从返回的JSON中运行dojo.replace之后,我一直在使用string.replace删除空值。。。