我有一个我正在迭代的列表:
<ul>
{{#list}}
<li>{{this.value}}</li>
{{/list}}
</ul>
如果{{this.hidden}}为真,我将如何继续循环?
我想做这样的事情:
{[#if this.hidden]} {[continue]} {[/if]}
RactiveJS可以实现吗?
答案 0 :(得分:1)
我不相信Ractive胡须中有break
或continue
语句(或类似的东西),至少根据他们的文档。你仍然可以达到同样的效果。
而不是基于某些条件的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>