0

Ember Tableでは、特定のセルの内容を変更してセルのスタイルを変更する必要があります。値の更新でセルに色を追加し(すでに行っています)、1秒後にスタイルを削除する必要があります(やりたいことです)。

色を適用するときに呼び出しsetTimeout、 内で色を削除しsetTimeoutました。常に機能するわけではありません。一部のセルの色は削除されません。(これはスクロールすると悪化します)。1 秒後、Ember は特定のセル要素を見つけることができないと思います。

Ember テーブル コンポーネントを使用し、 および を割り当てましcontentBindingcolumnBinding。コンポーネントのテンプレートを追加し、Ember.Table.TableCellクラス名を追加しました。

Main 関数を追加し、以下の Jsbin の例を変更しました。

4

1 に答える 1

0

これがあなたの質問に答えることを保証することはできませんが、このコードを読んで私が飛び出すことがたくさんあります。「回答」としてフォーマットするのが最適だと思います。

  1. setTimeout計算されたプロパティ内での呼び出しなどの副作用を避ける必要があります。Ember の計算されたプロパティは遅延型であるため、値が必要な場合にのみ更新されます。Observerこのような場合は、または単に関数を使用することを検討してください。これはほぼ確実にあなたの問題に関連しています。

  2. の代わりにsetTimeoutEmber.run.laterまたは同様の Ember 関数を使用します。これにより、コードが Ember 実行ループを尊重するようになります。

  3. customColor計算されたプロパティは、それを使用していますが、依存していませんpreviousColumnValue。これは、副作用の議論に関連しています。可能であれば、コードを再構築するようにしてください。

それ以外にも、あなたにはたくさんの正しいアイデアがあります。これは Ember Table で実行できると確信しています。AJAX の例は、非同期性を扱う Ember Table セルの例です。

Ember Table スターター キットを使用して、最初に JS Bin で最小限の例を作成してデバッグすることをお勧めします。これは、さらにヘルプが必要な場合にも役立ちます。これにより、私のような人がセットアップが機能するまで簡単に試すことができます。

于 2015-02-27T02:38:53.013 に答える