Aurelia flux dispatch仅在激活方法上调用一次

时间:2015-10-07 14:23:39

标签: aurelia

不知道是否有人遇到过这个问题。 我正在使用flux在一些模块上加载活动方法的东西。 就像这样:

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 ,从而触发启动所有事件分派的activate方法。 这是第一次执行activate方法时的工作,下次不是。

我很确定这种情况正在发生,因为我在activate方法上使用了调度程序,因为我已将调度程序调用移到另一个方法,并且它完全正常。

希望你们中的任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

嗯,解决方案很简单。 如果要处理事件,请不要在可以停用的模块上保留这样做的方法。

在我的情况下,我将所有处理方法移到我的一个路由器之外并将其放在不同的模块中。 就这么简单。