Ractive.js继续并打破循环

时间:2015-05-20 16:23:17

标签: javascript loops mustache continue ractivejs

我有一个我正在迭代的列表:

<ul>
    {{#list}}
    <li>{{this.value}}</li>
    {{/list}}
</ul>

如果{{this.hidden}}为真,我将如何继续循环?

我想做这样的事情:

{[#if this.hidden]} {[continue]} {[/if]}

RactiveJS可以实现吗?

2 个答案:

答案 0 :(得分:1)

我不相信Ractive胡须中有breakcontinue语句(或类似的东西),至少根据他们的文档。你仍然可以达到同样的效果。

而不是基于某些条件的continue,只需处理相反的条件。

{[#if !this.hidden]} {[do whatever...]} {[/if]}

而不是break循环,在绑定之前过滤数组。

var listModified = [];
for (var i=0; i < ractive.get("list").length; i++) {
    if (/* some condition */)
        break;
    listModified.push(ractive.get("list")[i]);
}

答案 1 :(得分:1)

您可以创建一个计算属性,该属性返回一个省略隐藏的数组。假设列表是对象列表:

将此添加到您的配置中:

computed: {
  listWithoutHidden: function(){
    return this.get('list').filter(function(item){
      return !item.hidden;
    });
  }
}

并更新模板

<ul>
    {{#listWithoutHidden}}
    <li>{{this.value}}</li>
    {{/list}}
</ul>