2012-03-08 67 views
1

我有这样的模板代码:胡子的JavaScript:循环通过对象输出数组

{{#priceList}} 
    {{#last}} 
    <strong>{{currency}}</strong> 
    {{/last}} 
    {{^last}} 
    <del>{{currency}}</del> 
    {{/last}} 
{{/finalPriceList}} 

,我试图去通过这个数据:

priceList: [ 
    { price: 50, currency: '$50.00', last: false }, 
    { price: 25, currency: '$25.00', last: true } 
] 

所有我想要做的就是输出:

<del>$50.00</del> <strong>$25.00</strong> 

我接近这个权利吗?我试过lastundefined,而不是false

我的代码输出

<del>$50.00</del> {{/last}} <strong>$25.00</strong> <del>$25.00</strong> {{/last}} 

回答

3

你的模板不正确 - 有{{/finalPriceList}},本来应该{{/priceList}},即:

{{#priceList}} 
    {{#last}} 
    <strong>{{currency}}</strong> 
    {{/last}} 
    {{^last}} 
    <del>{{currency}}</del> 
    {{/last}} 
{{/priceList}} 

看到这里工作的例子:

+0

奇怪的是,我在代码中有这样的权利,它仍然给我错误。我切换了{{^}}和{{#}}位置,并输出正常。它一定是在我的模板中更早导致它的东西?无论哪种方式。非常感谢你!很高兴知道我确实做得对。 – 2012-03-08 02:40:35

+0

哼,奇怪......你是如何加载文件的 - 查看我给出的jsFiddle例子,看看你的代码中是否有任何不同。如果你把它作为一个字符串来构建,你需要'\'作为最后一个字符来让它继续行。你应该使用Firebug或类似的东西来看看你是否收到任何错误信息 - 这将有助于大大指出问题。 – 2012-03-08 02:47:27

+0

我觉得自己是一个绝对疯狂的人,但现在也是以另一种方式工作。我正在使用jQuery来获取模板代码,只是'Mustache.to_html($('。product.template')。html(),product);'当它不工作时,我没有收到任何错误消息。随时可以忽略我。再次感谢你。 =) – 2012-03-08 02:53:31