如果我使用<form name="f1"> <input type='text' name='qty' id='qty' />
<input type='button' name='add' onclick='javascript:document.getElementById("qty").value++;' value='+'/>
<input type='button' name='subtract' onclick='javascript: document.getElementById("qty").value--;' value='-'/>
</form>
迭代ArrayModel
,是否有办法根据当前.each_with_index
与index
的结果进行渲染决策(目前,此比较会返回有关将Promise
与Numeric
进行比较的错误?
实际上,我有一个列表,默认情况下呈现十个项目,用户可以要求渲染20,30等。如果我有用户选择更改查询,那么整个列表重新渲染,这很慢。如果我将其选择从{false}更改为Promise
,则只重新呈现新显示的项目。但是,只有在{{ if index < selected_limit }}
与index
(Promise
)进行比较时,这才有效。有没有办法做到这一点?
答案 0 :(得分: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}}
答案 1 :(得分:2)
是的,如果绑定可以接受promises,那么你可以做的是返回一个解析为true或false的新promise,if绑定将在promises解析后更新。
{{ store.todo.each_with_index do |todo, index| }}
{{ if todo.selected_limit.then {|limit| index < limit } }}
....
{{ end }}
{{ end }}
如果是这样,请告诉我。调用.then on promise会在值结束时将值作为参数传递,但.then {...}的结果将是一个新的承诺。