2

ArrayModelusing を反復処理している場合、現在の結果との比較に.each_with_index基づいてレンダリングの決定を行う方法はありますか(現時点では、この比較は aと a の比較に関するエラーを返します)。indexPromiseNumericPromise

実際には、デフォルトで 10 個のアイテムをレンダリングするリストがあり、ユーザーは 20 個、30 個などをレンダリングするように要求できます。ユーザーの選択でqueryを変更すると、リスト全体が再レンダリングされるため、時間がかかります。選択{{ if index < selected_limit }}を false から true に変更すると、新しく表示された項目のみが再レンダリングされます。ただし、これは( )indexとの比較ができる場合にのみ機能します。それを行う方法はありますか?Promiseselected_limit

4

2 に答える 2

2

はい、 if バインディングは promise を取ることができるので、できることは true または false に解決される新しい promise を返すことであり、if バインディングはその promise が解決されると更新されます。

{{ 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 に答える