首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不调用Aurelia激活函数

从不调用Aurelia激活函数
EN

Stack Overflow用户
提问于 2017-07-13 09:18:25
回答 1查看 1.6K关注 0票数 2

我用Aurelia + WebStorm编程了一个工具条.在这个工具条中有一个激活函数,但是它永远不会被自动调用。您可以在这里看到TypeScript代码:

代码语言:javascript
复制
import {autoinject} from "aurelia-dependency-injection";
import {RouteConfig, Router} from "aurelia-router";
import {bindable} from "aurelia-templating";
import {getLogger} from "aurelia-logging";
import {ActuatorApi, NotificationApi, SystemApi} from "gen/api";

@autoinject
export class HeaderBar {
  private static LOG = getLogger("header-bar");
  public notificationKey: string;
  ...

  @bindable
  public router: Router;
  constructor(private actuatorApi: ActuatorApi, private notificationApi: NotificationApi,
              private systemApi: SystemApi) {
      this.isBatterieTestActive = true;
      this.hrefForActuatoresList = "#/app/configuration/actuators/";
      this.loadActuators();
  }

  public async activate(params: any, routeConfig: RouteConfig): Promise<void> {

    return this.loadNotifications();
  }

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 09:54:15

您可能希望尝试对组件使用activate方法,而不是附加。例如:

代码语言:javascript
复制
export class HeaderBar {

    private async attached(): Promise<void> {
        return await this.loadNotifications();
    }

    private loadNotifications() {
        // do your async stuff here...
        console.log('yeej, it works!');
    }

}

与原始代码片段相比,有一些更改:

  • 考虑到您没有使用params和/或routeconfig,使用activate是完全可行的,并且似乎适合您的需要(据我现在所见)
  • 为了简洁起见,我删除了所有其他无关的代码,以回答您的问题。
  • “异步”这个方法没有问题,正如您在我的示例中所看到的

activate()的用法在Aurelia的组件生命周期部分中也有更详细的描述。

更新:对于奥雷利亚生命周期的不同,StackOverflow问题Aurelia中组件和视图之间的区别(以及它们的生命周期)可能也很感兴趣。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45076400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档