Ractive.js 继续和中断循环

Posted

技术标签:

【中文标题】Ractive.js 继续和中断循环【英文标题】:Ractive.js continue and break loops 【发布时间】:2015-05-20 16:23:17 【问题描述】:

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

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

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

我想做这样的事情:

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

RactiveJS 可以做到吗?

【问题讨论】:

【参考方案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]);

【讨论】:

【参考方案2】:

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

将此添加到您的配置中:

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

并更新模板

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

【讨论】:

这个答案是正确的思维方式。您需要将数据发送到胡须之前对数据进行逻辑处理。

以上是关于Ractive.js 继续和中断循环的主要内容,如果未能解决你的问题,请参考以下文章

react 和 ractive的区别

ractive js:与模板中的#each键部分关联的嵌套对象列表的直接dom插入排序/顺序

Java 中的分支和循环(中断和继续)

C# 循环 - 中断与继续

Java 循环 - 中断?继续?

do..while 循环中的继续和中断语句错误