javascript - Aurelia 类构造函数与激活

标签 javascript constructor aurelia

当导出一个在 aurelia 中充当 View 模型的 es6 类时,我似乎能够在构造函数和激活函数中设置初始化代码。

这里有什么标准约定吗?

我应该在一个而不是另一个中进行某些初始化吗?

是否为未实现 es6 类的用户提供激活功能?

最佳答案

您可以在构造函数和激活方法中设置实例属性,它们都将由 Aurelia 调用。但是,这里存在某种概念上的差异。

Activate 是屏幕激活生命周期方法之一,理想情况下应该仅用于控制屏幕/ View 模型行为。例如,canDeactivate 方法控制是否可以导航到 View 模型等。Activate 也是一个钩子(Hook),它在 View 模型渲染之前执行(但在 attached 之前)钩)。但是,activate 方法可能永远不会被调用,即路由在构造函数中导航离开或 canActivate 方法拒绝/返回 false - 在这种情况下构造仍将被调用,但激活不会。

另一方面,construct 方法在任何其他钩子(Hook)和方法之前被调用,因此它在 activate 之前被调用。出于这个原因,构造是设置配置属性的主要位置,因为它需要依赖注入(inject)。因此,虽然 activate 采用固定的参数集(params、routeConfig、navigationInstruction),但传递给 constructor 方法的参数列表取决于您注入(inject)到 View 模型类中的服务。

关于javascript - Aurelia 类构造函数与激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733341/

相关文章:

javascript - 如何在 jQuery mobile 中显示 XML 中的图像?

javascript - 无法读取未定义的属性 'WebAuth'(Auth0 错误)

javascript - `run() {}` 在 javascript/Aurelia 中有什么作用?

javascript - 使用jquery只选择下一个

javascript - jQuery - 如何在淡入和淡出时使图像重叠?

c++ - C++ 中的意外破坏

objective-c - Objective C - init 和构造函数之间的区别?

Java N 维数组

javascript - Aurelia 中的 Angular 服务?

javascript - xpages 页面在 "IDLE"之后自动刷新一段时间(5-10 分钟)