Как применить функцию "Blink" в Ember Table?
В Ember Table мне нужно изменить стиль ячейки с изменением конкретного содержимого ячейки. Мне нужно добавить цвет в ячейку с обновлением значения (что я уже сделал) и удалить стили через 1 секунду (что я хочу сделать).
Я позвонил setTimeout
при применении цвета и удаленного цвета в пределах setTimeout
, Это не работает все время. некоторые цвета ячеек не удаляются. (это ухудшается при прокрутке). Я предполагаю, что через 1 секунду Эмбер не может найти конкретный элемент ячейки.
Я использую и компонент таблицы Ember и назначил contentBinding
а также columnBinding
, Я добавил шаблон для Ember.Table.TableCell
компонент и добавленные имена классов.
1 ответ
Я не могу гарантировать, что это ответит на ваш вопрос, но вот несколько вещей, которые бросаются в глаза при чтении этого кода. Я думаю, что они лучше отформатированы как "ответ".
Вы должны избегать побочных эффектов, таких как звонки
setTimeout
в пределах вычисляемого свойства. Вычисленные свойства в Ember ленивы, поэтому они обновляются только тогда, когда необходимо их значение. Рассмотрите возможность использованияObserver
или просто функция, в подобных случаях. Это почти наверняка связано с вашей проблемой.Вместо
setTimeout
использоватьEmber.run.later
или аналогичные функции Ember. Это позволит убедиться, что ваш код соответствует циклу выполнения Ember.Ваш
customColor
вычисляемое свойство не зависит отpreviousColumnValue
, хотя он использует это. Это связано с обсуждением побочных эффектов: вы должны попытаться изменить архитектуру своего кода, если это возможно.
Помимо этого, у вас есть много правильных идей. Я вполне уверен, что это можно сделать с помощью Ember Table - пример AJAX является примером ячеек Ember Table, работающих с асинхронностью.
Я рекомендую отладку, сначала попытавшись создать минимальный пример в JS Bin, используя стартовый набор Ember Table. Это также будет полезно, если вам нужна дополнительная помощь - таким людям, как я, будет легко играть с вашей настройкой, пока она не заработает.