Aurelia 中的自定义元素单例

Custom Element Singletons in Aurelia

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

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

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

这是一个 plunker 示例:http://plnkr.co/edit/Au80u0?p=preview

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

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

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