苗条-如何在模板中使用方法?

时间:2018-07-25 15:21:18

标签: svelte

借助vue,我通常将任何复杂的逻辑提取到方法中,例如

<li v-for="todo in todos" v-show="!isTodoComplete(todo)">
  {{ todo }}
</li>

但是当我用svelte尝试相同的方法时:

{#each todos as todo}
    <li hidden={isComplete(todo)}>{todo}</li>
{/each}
...
methods: { isComplete (todo) { ... } }

我遇到错误TypeError: ctx.isComplete is not a function

我做错什么了吗?这样的事情怎么办?

1 个答案:

答案 0 :(得分:3)

苗条区分helpersmethods

助手是模板中用于处理数据的函数-它们应该是纯函数,除了作为参数传递的东西(例如{{ 1}}对象)。

方法是经常执行事件的功能,可以执行。他们确实有权访问组件状态。

在这种情况下,todo应该是帮助者,而不是方法。