如何在DustJS中使用参数?我创建了一个jsfiddle,我想在key = [parameter]中打印键值对。
在小提琴中,我只想展示Larry,Moe和Curly的体重(不是他们的身高)。
在XSLT中,这很容易。只需使用Xpath查找prop [@name =" weight"]然后使用以下兄弟轴。
小提琴:http://jsfiddle.net/6YrCg/
<script id="entry-template">
{title}
<ul>
{#names}
<li>{name}</li>{~n}
<ul><li>Weight:{#props.name}{value}{/props.name}</li></ul>
{/names}
</ul>
</script>
<div id="output"></div>
$(document).ready(function () {
var data = {
"title": "Famous People",
"names" : [{ "name": "Larry", "props":[{"name":"height","value":"5.8"},{"name":"weight","value":"160"}] },{ "name": "Curly", "props":[{"name":"height","value":"5.9"},{"name":"weight","value":"200"}]},{ "name": "Moe", "props":[{"name":"height","value":"5.8"},{"name":"weight","value":"160"}]}]
}
var source = $("#entry-template").html();
var compiled = dust.compile(source, "intro");
dust.loadSource(compiled);
dust.render("intro", data, function(err, out) {
$("#output").html(out);
});
});
答案 0 :(得分:0)
这是一个解决方案,使用{@eq}
帮助程序仅在name
键等于&#34; weight&#34;时才输出值。
{title}
<ul>
{#names}
<li>
{name}
<ul><li>Weight: {#props}{@eq key=name value="weight"}{value}{/eq}{/props}</li></ul>
</li>
{/names}
</ul>
{@eq}
之类的上下文帮助程序是增强Dust核心语法的函数。有关此帮助程序和其他官方支持的帮助程序的更多信息,请查看dustjs-helpers wiki page。