Dojo lang.replace()
将未定义的占位符替换为undefined
文本。是否可以在占位符中定义默认值?
假设我想有以下占位符:
<div class="message">The query returned {result.rows:0} rows</div>
占位符将替换为返回的行数,但是当变量 rows
不可用时(例如,结果包含错误消息(,它将替换为 0。
您可以考虑两种方法。 第一种是在将 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