灰烬:钩为CSS属性更改

时间:2019-06-10 09:33:09

标签: javascript ember.js ember-data

我必须将很多div渲染为DOM。因此,我要做的是先将前5个元素渲染到DOM中,然后每隔10个div间隔300ms渲染一次。

问题是当我更改为display: block时,我需要更改组件中的某些内容。因此,我尝试使用didRender挂钩。

代码在下面

didRender() {
   if(this.element.offsetParent) {
      this.set('myvar', true);
   }
} 

但是它不能完美运行。任何人都可以建议我,这是最好的方法。

_预先感谢。

1 个答案:

答案 0 :(得分:0)

很难从问题中猜出您的用例,但我认为这是在呈现大量项目而不引起性能问题的情况下。灰烬生态系统提供了防弹插件。我知道的最成熟的是ember-collectionember-large-list。如果它们符合您的要求,我建议使用其中一种。重新实现类似的东西将需要大量工作。在超时的基础上渲染新项目无法很好地扩展,因为它没有考虑浏览器的工作量。

对于您的具体问题:Ember无法提供监听CSS更改的方法。您应该在对属性进行突变(触发CSS更改)的同一位置执行自定义逻辑。如果必须在渲染后运行它,则需要处理Ember的runloop