Автозакрытие незакрытых тегов в шаблоне

Привет я пытаюсь создать такой шаблон

<script type='text/mustache' id='user-template'>                        
  <ul>
    {{#each users}}
      <li>{{name}}</li>                         
      {{#startHidden @index 2}}</ul><ul style = "display:none;">{{/startHidden}}
      {{#endHidden @index 2}}</ul><a href="#">show all</a>{{/endHidden}}
    {{/each}}
  </ul>              
</script>

Так что идея заключается в том, чтобы закрыть верхнюю <ul> после того, как второй пользователь в списке откроет новый скрытый <ul> и поместите всех остальных пользователей здесь. Но вместо этого я закрылся <ul> и окончательный HTML выглядит так:

<ul>
  <li>name1</li>                            
  <li>name2</li>                            
  <ul style="display:none;"></ul>
  <li>name3</li>                            
  <li>name4</li>                            
  <a href="#">show all</a>
</ul>

Это мой JS

var data = [{name: "name1"},{name: "name2"},{name: "name3"},{name: "name4"}];                   
var users = new can.List(data);

var frag = can.view("user-template",{users:users},{
  'startHidden' : function(currentIndex, usersToShow, options){                     
     if (currentIndex() === usersToShow-1) {
       return options.fn(this);
     }
   },
   'endHidden' : function(currentIndex, usersToShow, options){                
     var length = options.scope.attr('users').length;

     if ((length>usersToShow)&&(currentIndex() === length-1)) {
       return options.fn(this);
     }
   }            
});

Есть ли способ предотвратить автоматическое закрытие тегов, или я просто делаю это неправильно?

1 ответ

Решение

Это невозможно. can.view.live.html может только удалять или добавлять элементы в последовательности. Обходным решением будет просто добавить "скрытый" класс в LI, если он не должен быть видимым.

Другие вопросы по тегам