将函数作为参数传递给 jQuery 模板

Passing function as parameter to jQuery template

我正在尝试将函数作为参数发送到 jQuery 模板并显示该函数返回的第一个元素。

在下面的示例中,数据变量是一个函数,我试图附加返回的第一个元素。这不是将数据存储到变量中的解决方案,因为在很多情况下数据是数组而不是函数。

var template= ' {{each things}}{{if $index == 0}}<span>${this.Name}</span>{{/if}}{{/each}}';

$('.dropdownText').text(jq.tmpl(template, data));

我不确定我的问题是否正确,但如果问题是数据可以是函数或数组,你可能只需要这样做

var selectedTemplate = ' {{each things}}{{if $index == 0}}<span>${this.Name}</span>{{/if}}{{/each}}';
function getData(data) {
 if (Array.isArray(data)) return data;
 if (typeof data === 'function') return data();
}
$('.dropdownText').text(UMT_jq.tmpl(selectedTemplate, getData(data)));