项目作者: youharutou

项目描述 :
This is a template engine like twig.
高级语言: JavaScript
项目地址: git://github.com/youharutou/tingn.git
创建时间: 2017-09-29T02:15:44Z
项目社区:https://github.com/youharutou/tingn

开源协议:

下载


Tingn

Tingn.js can compile the template that is similar to twig.

template example:

  1. <ul>
  2. {% if !empty(goods) && !empty(emp) %}
  3. {% for good in goods %}
  4. <li class="item_box {% if good.is_fit == 1 && loop.last %}is_fit{% endif %}" data-index="{{loop.index}}">
  5. <span>{{good.goods_name}}</span>
  6. <span>{{good.goods_price}}</span>
  7. {% for attr in good.attrs %}
  8. <p class="attr_item" data-index="{{loop.index}}">{{attr.attr_name}}</p>
  9. {% endfor %}
  10. {% for ep in emp %}
  11. <div data-index="{{loop.index}}"><span>{{ep}}</span><span>{{loop.index}}</span></div>
  12. {% endfor %}
  13. </li>
  14. {% endfor %}
  15. {% else %}
  16. <li class="no_result">暂无记录</li>
  17. {% endif %}
  18. </ul>

Tingn.js can compile the upper template and return result just like:

  1. <ul>
  2. <li class="item_box " data-index="0"><span>goods A</span> <span>18.00</span>
  3. <p class="attr_item" data-index="0">big</p>
  4. <p class="attr_item" data-index="1">small</p>
  5. <div data-index="0"><span>11</span><span>0</span></div>
  6. <div data-index="1"><span>22</span><span>1</span></div>
  7. </li>
  8. <li class="item_box " data-index="1"><span>goods B</span> <span>10.00</span>
  9. <p class="attr_item" data-index="0">hot</p>
  10. <p class="attr_item" data-index="1">cool</p>
  11. <div data-index="0"><span>11</span><span>0</span></div>
  12. <div data-index="1"><span>22</span><span>1</span></div>
  13. </li>
  14. <li class="item_box is_fit" data-index="2"><span>goods C</span> <span>28.00</span>
  15. <p class="attr_item" data-index="0">sugar</p>
  16. <p class="attr_item" data-index="1">no sugar</p>
  17. <div data-index="0"><span>11</span><span>0</span></div>
  18. <div data-index="1"><span>22</span><span>1</span></div>
  19. </li>
  20. </ul>

Usage

  1. var goods = [
  2. {goods_id: 2, goods_name: "goods A", goods_price: "18.00", is_fit: 0, attrs: [{attr_id: 1, attr_name: "big"}, {attr_id: 2, attr_name: "small"}]},
  3. {goods_id: 21, goods_name: "goods B", goods_price: "10.00", is_fit: 1, attrs: [{attr_id: 3, attr_name: "hot"}, {attr_id: 4, attr_name: "cool"}]},
  4. {goods_id: 47, goods_name: "goods C", goods_price: "28.00", is_fit: 1, attrs: [{attr_id: 5, attr_name: "sugar"}, {attr_id: 6, attr_name: "no sugar"}]}
  5. ];
  6. var emp = {"aa": 11, "bb": 22};
  7. Tingn("tpl.html", {
  8. data: {"goods": goods, "emp": emp}
  9. }, function(data){
  10. // data is the compiled results.
  11. $(".container").html(data);
  12. });

Support or Contact