DustJS xpath下一个兄弟轴等效

时间:2014-11-12 01:57:46

标签: xpath parameters siblings dust.js equivalent

如何在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);
    });
});

1 个答案:

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