什么是Aurelia管道的正确方法签名

时间:2016-08-09 03:30:30

标签: typescript aurelia

  

您可以使用addPipelineStep创建自己的管道步骤,但步骤的名称必须与管道的其中一个插槽匹配,默认的插槽顺序为authorize,preActivate,preRender和postRender。 Aurelia还具有为这些插槽创建管道步骤的功能。

     

在加载路径的步骤和调用路径视图模型'canActivate函数(如果已定义)之间调用authorize。   如果已定义,则在路径视图模型'canActivate函数和先前路径视图模型的停用函数之间调用preActivate。   在路径视图模型的激活功能之间和组件渲染/组合之前调用preRender。   在组件渲染/组合后调用postRender

所以它是public canActivate(): void {吗? public canActivate(): boolean {?等

1 个答案:

答案 0 :(得分:1)

step必须使用run方法返回导航结果的Promise

export class MyStep {
  run(routingContext, next) {

    // do something here!

    return next();
  }
}

其他地方:

this.router.configure(config => 
  config.addPipelineStep('authorize', new MyStep ()));

导航结果对象是具有completed属性和/或output属性的对象。 result.output可以是Error或具有navigate方法的对象。

请参阅此处的代码,了解路由器期望您的步骤Promise返回的内容:https://github.com/aurelia/router/blob/34119d1ce827f10fe5d3c7c97133d83ad922eab6/src/app-router.js#L174