2015-11-14 3 views
2

Ember.View устарел, в пользу Компоненты. Это здорово, но у меня проблемы с выпуском 2.0.didInsertElement in Ember 2.0+

Чаще всего я использовал крючок didInsertElement для запуска некоторого кода jQuery и т. Д. Но теперь, когда класс Em.View устарел, как я могу добиться того же? Я не хочу создавать компонент или что-то в этом роде. Не имеет смысла создавать компоненты для обычных страниц (маршрутов). Просто потому, что его не пригодная для использования вещь плюс области компонента изолированы.

Скажите, что у нас есть маршрут, и когда шаблон визуализируется, я просто хочу залить некоторый код jQuery. Как я могу сделать это в Ember 2.0+?

ответ

2

Вы можете воспользоваться didTransition крюком и Ember.run.next. Проверьте мое решение:

export default Ember.Route.extend({ 
    actions: { 
    didTransition() { 
     Ember.run.next(this, 'initParticles'); 
    } 
    }, 
    initParticles() { 
    let ammount = (window.matchMedia('(max-width: 456px)').matches) ? 40 : 100; 
    particlesJS('particles-js', { 
     // my options 
    }); 
    } 
}); 
+0

Спасибо Даниэлю, это хорошо работает. Теперь, когда представления устарели, нормально ли хранить такие коды в файле маршрута? – Nexus

+0

Да. Это нормально держать такой код в пути. –

2

Хотя это не похоже на лучший подход, создание компонента, вероятно, является вашим лучшим вариантом. Вскоре у нас будут маршрутизируемые компоненты, которые будут использовать большинство используемых контроллерами и представлениями. Создание компонента и просто вставка его в ваш шаблон должны поставить вас на хороший путь, чтобы быть готовым к маршрутизируемым компонентам.

Смежные вопросы