Dojo lang.replace - 如何提供默认值,而不是'undefined'?

时间:2013-07-04 13:50:32

标签: javascript dojo replace

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

假设我想要以下占位符:

<div class="message">The query returned {result.rows:0} rows</div>

占位符将替换为返回的行数,但是当变量rows不可用时(对于exapmle,结果包含错误消息),它将替换为0.

1 个答案:

答案 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