对于 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
。
我做错了什么吗?如何以 slim 的方式做这样的事情?
最佳答案
Helpers 是在模板中用于处理数据的函数——它们应该是纯函数,除了作为参数传入的内容(例如 todo
对象)。
方法是做事情的函数,通常是响应事件。他们确实有权访问组件状态。
在这种情况下,isComplete
应该是一个助手,而不是一个方法。
关于Svelte - 如何在模板中使用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51522539/