使用Hogan编译进行条件列表渲染

时间:2019-01-31 23:42:45

标签: list hogan.js

我看了很多问题,但找不到符合我条件的问题。 我有一个可以很好显示的列表,但是例如,我希望仅针对产品显示价格,而不是每个商品。

  var resultTemplate = Hogan.compile([
    "<a href='{{url}}'>",
    "<div class='product'>",
      "<h2>{{title}}</h2>",
      "<img style='max-height: 100px;' src='{{image}}'>",
      "<div>Sections: {{sections}}</div>",
      ("{{price}}"=== undefined? " ":"<div>Price: ${{price}}</div>"),
      "<div>SKU: {{sku}}</div>",
    "</div>",
    "</a>"
  ].join('') );
  var customRenderFunction = function(document_type, item) {
    var
      date = new Date(item['published_at']),
      data = {
        title: item['title'],
        image: item['image'],
        price: item['price'],
        sku: item['info'],
        sections: item['sections'],
        url: item['url'],
        published_at: [date.getMonth(), date.getDate(), date.getFullYear()].join('/')
      };
      console.log(data);
    return resultTemplate.render(data);
  };

我通过控制台记录了未定义的价格,但是到目前为止,我已经尝试了这些条件,但没有一个起作用。它只会在页面上显示价格:$

("{{price}}"=== undefined ? " ":"<div>Price: ${{price}}</div>")
("{{price}}"== " " ? " ":"<div>Price: ${{price}}</div>")
("{{price}}"== "" ? " ":"<div>Price: ${{price}}</div>")

我也更改了正确或错误的位置:

"<div>Price: ${{price}}</div>" : " " // output " "
or
"<div>Price: ${{price}}</div>" " "<div>haha</div> // output haha

这意味着if是否可以正常工作?我不知道。请帮忙。谢谢

0 个答案:

没有答案