2

如果我正在迭代ArrayModelusing .each_with_index,有没有办法根据当前index与 a 的结果进行比较来做出渲染决策Promise(目前,此比较返回关于比较 aNumeric与 a的错误Promise)?

在实践中,我有一个默认呈现十个项目的列表,用户可以要求呈现 20、30 等。如果我让用户选择更改查询,那么整个列表会重新呈现,这很慢。如果我将他们的选择{{ if index < selected_limit }}从 false 更改为 true,则只有新显示的项目会重新呈现。但这仅在可以indexPromise( selected_limit) 进行比较时才有效。有没有办法做到这一点?

4

2 回答 2

2

您应该可以.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}}
于 2015-07-08T15:08:08.610 回答
2

是的,如果绑定可以接受承诺,那么您可以做的是返回一个解析为 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。

于 2015-07-08T17:52:49.163 回答