Как применить функцию "Blink" в Ember Table?

В Ember Table мне нужно изменить стиль ячейки с изменением конкретного содержимого ячейки. Мне нужно добавить цвет в ячейку с обновлением значения (что я уже сделал) и удалить стили через 1 секунду (что я хочу сделать).

Я позвонил setTimeout при применении цвета и удаленного цвета в пределах setTimeout, Это не работает все время. некоторые цвета ячеек не удаляются. (это ухудшается при прокрутке). Я предполагаю, что через 1 секунду Эмбер не может найти конкретный элемент ячейки.

Я использую и компонент таблицы Ember и назначил contentBinding а также columnBinding, Я добавил шаблон для Ember.Table.TableCell компонент и добавленные имена классов.

1 ответ

Решение

Я не могу гарантировать, что это ответит на ваш вопрос, но вот несколько вещей, которые бросаются в глаза при чтении этого кода. Я думаю, что они лучше отформатированы как "ответ".

  1. Вы должны избегать побочных эффектов, таких как звонки setTimeoutв пределах вычисляемого свойства. Вычисленные свойства в Ember ленивы, поэтому они обновляются только тогда, когда необходимо их значение. Рассмотрите возможность использования Observerили просто функция, в подобных случаях. Это почти наверняка связано с вашей проблемой.

  2. Вместо setTimeoutиспользовать Ember.run.later или аналогичные функции Ember. Это позволит убедиться, что ваш код соответствует циклу выполнения Ember.

  3. Ваш customColor вычисляемое свойство не зависит от previousColumnValue, хотя он использует это. Это связано с обсуждением побочных эффектов: вы должны попытаться изменить архитектуру своего кода, если это возможно.

Помимо этого, у вас есть много правильных идей. Я вполне уверен, что это можно сделать с помощью Ember Table - пример AJAX является примером ячеек Ember Table, работающих с асинхронностью.

Я рекомендую отладку, сначала попытавшись создать минимальный пример в JS Bin, используя стартовый набор Ember Table. Это также будет полезно, если вам нужна дополнительная помощь - таким людям, как я, будет легко играть с вашей настройкой, пока она не заработает.

Другие вопросы по тегам