3

我有一个使用Aurelia Store的 Aurelia 应用程序。@connectTo在 Aurelia 管道步骤中使用装饰器时遇到了一些麻烦。

我已将以下步骤添加到我的配置管道中:

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生命周期方法,但如果是这样,我该怎么办?

4

1 回答 1

1

Aurelia 的维护者在此处回复(仅在我在他们的 GitHub 上提出问题后)。

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

于 2018-06-18T16:18:08.047 回答