Javascript Dojo lang.replace-如何提供默认值,而不是';未定义';?
DojoJavascript 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
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删除空值。。。