ICanHaz.js - Можно ли поместить цикл в шаблон? - PullRequest
4 голосов
/ 16 августа 2011

Допустим, у меня есть элемент, и внутри него нужно поместить неопределенное количество

элементов (в зависимости от выбора пользователя). Есть ли способ создать шаблон ICanHaz, который допускает какой-то цикл while. Например:
    <ul>
     for(i = 0; i < numOfLi; i++)
       <li> {{ stuff }} </li>
    </ul>

Ответы [ 3 ]

13 голосов
/ 16 декабря 2011

icanhaz (усы) включает в себя способ зацикливания.

В JavaScript:

var listOfStuff = {stuff: [ 
                      {key: "1", desc: "First"},
                      {key: "2", desc: "Second"}
                  ]};
$("#mySelectBox").append(ich.myTemplate(listOfStuff));

На ваш взгляд:

<script id="myTemplate" type="text/html">
  {{#stuff}}
    <option value="{{key}}">{{desc}}</option>
  {{/stuff}}
</script>

<select id="mySelectBox">
</select>

{{#stuff}} и {{/stuff}} разделяют список. Посмотрите на Разделы часть усы для деталей.

Редактировать: Обязательно ознакомьтесь с этим ответом , если вы используете jQuery 1.9 или выше.

0 голосов
/ 23 августа 2011

Я не уверен насчет iCanHaz, но Джон Резиг (создатель JQuery) разместил этот метод в своем блоге:

См. Микротемплейтинг JavaScript

Пик пробуждения ...

<script type="text/html" id="user_tmpl">
  <% for ( var i = 0; i < users.length; i++ ) { %>
    <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
  <% } %>
</script>
0 голосов
/ 16 августа 2011

Неа. Не может быть сделано Вы должны визуализировать HTML динамически.

...