Отправка потока Aurelia вызывается только один раз при активации метода

Не знаю, сталкивался ли кто с этой проблемой. Я использую поток для загрузки данных в активный метод некоторых модулей. Именно так:

export class ContractRate{

    constructor(dispatcher){
        this.dispatcher = dispatcher;
    }

    activate() {
        this.dispatcher.dispatch('rates.get');
    }

    @handle('rates.changed')
    ratesChanges(action, rates){
        this.rates = rates;
    }

}


export class Index{
    constructor(dispatcher){
        this.dispatcher = dispatcher;
    }

    @handle('rates.get')
    getRates(){
            //here there's some code that retrieves the rates
            this.dispatcher.dispatch('rates.changed', this.rates);
    }

    @handle('rates.changed')
    ratesChanges(action, rates){
        this.rates = rates;
    }
}

Дело в том, что кажется, что this.dispatcher.dispatch('rates.get'); встречается только один раз.

ContractRate загружается при выборе определенной вкладки, которая запускает метод активации, запускающий всю отправку событий. Это работает при первом выполнении метода активации, в следующий раз — нет.

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

Надеюсь, кто-нибудь из вас может помочь мне здесь.


person Painy James    schedule 07.10.2015    source источник


Ответы (1)


Что ж, решение было простым. Если вы хотите обрабатывать события, не храните методы, которые это делают, в модулях, которые можно деактивировать.

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

person Painy James    schedule 08.10.2015