如何在EmberTable中应用'Blink'功能?

How to apply 'Blink' feature in Ember Table?

EmberTable中,我需要随着特定单元格内容的变化而改变单元格的样式。我需要通过值更新(我已经完成)为单元格添加颜色,并在 1 秒后 删除样式(我想这样做)。

我在 setTimeout 中应用颜色和删除颜色时调用了 setTimeout。它并非一直有效。一些单元格颜色不会被删除。 (滚动时情况会变得更糟)。我假设 1 秒后,Ember 找不到特定的单元格元素。

我使用 Ember table 组件并分配了 contentBindingcolumnBinding。我为 Ember.Table.TableCell 组件添加了一个模板并添加了 class 个名称。

添加了 Main 函数并修改了下面的 Jsbin 示例。

我不能保证这会回答您的问题,但在阅读这段代码时,我突然想到了很多事情。我认为最好将它们格式化为 "answer".

  1. 您应该避免副作用,例如在计算的 属性 中调用 setTimeout。 Ember 中的计算属性是惰性的,因此它们仅在需要它们的值时更新。在这种情况下,请考虑使用 Observer,或仅使用一个函数。这几乎肯定与您的问题有关。

  2. 而不是 setTimeout,使用 Ember.run.later 或类似的 Ember 函数。这将确保您的代码遵守 Ember 运行 循环。

  3. 您的 customColor 计算 属性 不依赖于 previousColumnValue,即使它使用它。这与副作用讨论有关:如果可能,您应该尝试重新构建代码。

除此之外,你还有很多正确的想法。我相当确定这可以通过 Ember Table 来完成 - AJAX example 是 Ember Table 单元格处理异步的一个例子。

我建议首先尝试使用 Ember Table starter kit 在 JS Bin 中创建一个最小示例来进行调试。如果您需要更多帮助,这也会很有用 - 它可以让像我这样的人轻松使用您的设置,直到它起作用。