如何申请' Blink' Ember Table中的功能?

时间:2015-02-26 15:59:34

标签: javascript ember.js ember-table

Ember Table 中,我需要更改特定单元格内容的单元格样式。我需要使用值更新(我已经完成)和在1秒后删除样式(我想要这样做)为单元格添加颜色。

我在setTimeout内应用颜色和删除颜色时调用了setTimeout。它不会一直有效。某些单元格颜色未被删除。 (滚动时这会变得更糟)。我假设1秒钟后,Ember无法找到特定的细胞元素。

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

在下面添加了主要功能和修改过的Jsbin示例。

1 个答案:

答案 0 :(得分:0)

我不能保证这会回答你的问题,但是在阅读这段代码时,这里有很多东西会突然出现。我认为最好将它们格式化为“答案”。

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

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

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

  4. 除此之外,你有很多正确的想法。我很确定这可以用Ember Table完成 - AJAX example是Ember Table单元处理异步的一个例子。

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