【问题标题】:Custom Element Singletons in AureliaAurelia 中的自定义元素单例
【发布时间】:2016-02-23 07:06:09
【问题描述】:

我认为在 Aurelia 中使用依赖注入时,默认情况下会得到单例。自定义元素似乎并非如此。

假设我有 3 个名为 abc 的自定义元素。 ab 是同级页面。 cb 模板中的一个元素。我将c 注入a

当我这样做时,我在a 中获得了一个新的c 实例。有没有办法让c 成为单身人士?

这是一个笨拙的例子:http://plnkr.co/edit/Au80u0?p=preview

【问题讨论】:

标签: ecmascript-6 aurelia


【解决方案1】:

自定义元素不能是单例,因为它们可以被多次使用,从架构上讲,一个元素可以或将充当单例在架构上是没有意义的。

想象在一个页面上引用同一个元素 3 次,如果它们是单例并且不是预期的自定义元素行为,它们都会具有相同的状态。但是,您可以创建一个您注入的共享服务类(并且是一个单例)。

我在我的 Aurelia 项目中所做的是创建一个名为 MyCustomElementMediator 的类(将 MyCustomElement 替换为您的元素名称)。这允许您处理组件的状态。这对于自定义元素的多次出现没有意义,但如果您只在一个地方使用它,那么这种方法很有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    相关资源
    最近更新 更多