伏特迭代与承诺的比较
Volt iteration comparison with promise
如果我使用 .each_with_index
遍历 ArrayModel
,有没有一种方法可以根据当前 index
与 [=13] 的结果进行渲染决策=](目前,这个比较 returns 是关于比较 Numeric
和 Promise
的错误)?
实际上,我有一个默认呈现十个项目的列表,用户可以要求呈现 20、30 等。如果我让用户选择更改 query,然后整个列表重新呈现,这很慢。如果我将他们的选择 {{ if index < selected_limit }}
从 false 更改为 true,则只有新显示的项目会重新呈现。但这仅在可以完成 index
与 Promise
(selected_limit
) 的比较时才有效。有办法吗?
你应该可以用.value
来对比,我自己在一个项目中就是这么干的。
{{ store.players.each do |player| }}
{{ unless player == current_player.value }}
<table class='player'>
<tr><td>{{ player.name }}</td></tr>
<tr><td><button e-click='add_vote(player.id)'>+1</button></td></tr>
</table>
{{end}}
{{end}}
是的,if 绑定可以接受承诺,所以您可以做的是 return 解析为 true 或 false 的新承诺,并且 if 绑定将在承诺解析后更新。
{{ store.todo.each_with_index do |todo, index| }}
{{ if todo.selected_limit.then {|limit| index < limit } }}
....
{{ end }}
{{ end }}
让我知道从那以后是否可行。在 promise 上调用 .then 将在解析后将值作为参数传递,但 .then {...} 的结果将是一个新的 promise。
如果我使用 .each_with_index
遍历 ArrayModel
,有没有一种方法可以根据当前 index
与 [=13] 的结果进行渲染决策=](目前,这个比较 returns 是关于比较 Numeric
和 Promise
的错误)?
实际上,我有一个默认呈现十个项目的列表,用户可以要求呈现 20、30 等。如果我让用户选择更改 query,然后整个列表重新呈现,这很慢。如果我将他们的选择 {{ if index < selected_limit }}
从 false 更改为 true,则只有新显示的项目会重新呈现。但这仅在可以完成 index
与 Promise
(selected_limit
) 的比较时才有效。有办法吗?
你应该可以用.value
来对比,我自己在一个项目中就是这么干的。
{{ store.players.each do |player| }}
{{ unless player == current_player.value }}
<table class='player'>
<tr><td>{{ player.name }}</td></tr>
<tr><td><button e-click='add_vote(player.id)'>+1</button></td></tr>
</table>
{{end}}
{{end}}
是的,if 绑定可以接受承诺,所以您可以做的是 return 解析为 true 或 false 的新承诺,并且 if 绑定将在承诺解析后更新。
{{ store.todo.each_with_index do |todo, index| }}
{{ if todo.selected_limit.then {|limit| index < limit } }}
....
{{ end }}
{{ end }}
让我知道从那以后是否可行。在 promise 上调用 .then 将在解析后将值作为参数传递,但 .then {...} 的结果将是一个新的 promise。