在Aurelia Store

时间:2018-05-30 12:44:09

标签: aurelia aurelia-router aurelia-store

我使用Aurelia Store创建了Aurelia应用。我在Aurelia管道步骤中使用@connectTo装饰器时遇到了一些麻烦。

我在配置管道中添加了以下步骤:

config.addPipelineStep('authorize', AuthorizeStep);

这一步看起来像:

@connectTo()
export class AuthorizeStep {
  state: State;

  run(navigationInstruction, next) {
    if (navigationInstruction.getAllInstructions().find(x => x.config.isAdmin)) 
    {
      if (!this.state.user.isAdmin) {
        return next.cancel();
      }
    }

    return next();
  }
}

然而,我的状态总是未定义的。看看我的项目的其他部分,我可以看到状态和用户正在填充,但似乎在这个AuthorizeStep它似乎不起作用。

我认为这个问题可能是因为我的AuthorizeStep没有bind生命周期方法,但如果是这样,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

Aurelia的维护者回应(仅在我在他们的GitHub上提出问题后)here

基本上,由于此类中不存在绑定生命周期,@connectTo装饰器不起作用。相反,我需要手动注入Store并订阅状态。