Ember: крючок для изменения свойства css - PullRequest
0 голосов
/ 10 июня 2019

Я должен сделать много дел в DOM.Итак, я сначала рендерил первые 5 элементов в DOM, а затем рендерил каждые 10 делений с интервалом 300 мс.

Проблема в том, что когда я перехожу в display: block, мне нужно что-то изменитькомпонент.Поэтому я пытаюсь использовать didRender ловушку для этого.

Код ниже

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

Но он не работает идеально.Кто-нибудь, пожалуйста, предложите мне, какой лучший способ сделать это.

_Спасибо заранее.

1 Ответ

0 голосов
/ 11 июня 2019

Трудно угадать ваш вариант использования по этому вопросу, но я предполагаю, что речь идет об отображении очень большого списка элементов без проблем с производительностью.В тёмной экосистеме есть пуленепробиваемые дополнения.Наиболее известные из известных мне: ember-collection и ember-large-list.Я бы порекомендовал использовать один из них, если они соответствуют вашим требованиям.Реализация чего-то подобного будет большой работой.Рендеринг новых элементов по тайм-ауту не будет хорошо масштабироваться, поскольку он не учитывает рабочую нагрузку браузера.

Для вашего конкретного вопроса: Ember не предоставляет способ прослушивания изменений CSS.Вы должны выполнить пользовательскую логику в том же месте, где вы изменяете свойство, которое вызывает изменение CSS.Если он должен быть запущен после рендера, вам нужно разобраться с Ember's runloop .

...