Ember Component не перезагружается при перезагрузке маршрута или переходе к

1

У меня есть маршрут ember, который вызывает компонент ember для отображения всех данных.

У меня есть случай, когда ключ маршрута изменяется, и я перезагружаюсь с помощью route.transitionTo. Данные загружаются штрафом. Но проблема заключается в том, что компонент делает вещи в методах init и didInsertElement, которые на route.transitionTo не запускаются.

Как я могу убедиться в том, что transitionTo на компонент снова вызван?

Я не могу использовать route.refresh потому что это не делает крючок модели.

Любая помощь будет оценена, спасибо!

Теги:
ember.js
ember-components

1 ответ

1

Ну, есть более трудный и лучший способ, и есть ленивый и быстрый путь:

  1. Лучше: я предлагаю вам создать свойство на маршруте и передать этот параметр компоненту, а в компоненте создать вычисленное свойство для этого параметра, то, что вы отправили, и там вы можете запустить свой код, "init" и "didInsertElement".

Например: router.hbs

{{component-name parameter=parameter}}

Component.js

lineWidth: Ember.computed('parameter', function() {
    // I will run here if I get the parameter (and the parameter changed in route)
}),
  1. Не лучший способ: вы можете перезагрузить весь компонент следующим образом:

router.hbs

{{#if reload}}
    {{component-name}}
{{/if}}

router.js

this.set('reload', false);
Ember.run.next(() => {
    this.set('reload', true);
});
  • 0
    Я уже пошел с первым вариантом, он работает. Но это просто не правильно, что я должен поставить слушателя для этого, надеялся на более чистый вариант. Второе это слишком много. Но спасибо, что нашли время!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню