Ecmascript 6 Aurelia中的自定义元素单例

Ecmascript 6 Aurelia中的自定义元素单例,ecmascript-6,aurelia,Ecmascript 6,Aurelia,我认为在Aurelia中使用依赖注入时,默认情况下会得到单例。自定义元素似乎不是这样 假设我有3个名为a、b和c的自定义元素。a和b是同一页上的同级。c是b模板中的一个元素。我正在给a注射c 当我这样做时,我在a中得到一个新的c实例。有没有办法让c成为一个单子 下面是一个plunker示例:自定义元素不能是单例,因为它们可以被多次使用,从架构上讲,一个元素可以或将充当单例是没有意义的 想象一下,在一个页面上引用同一个元素3次,如果它们是单例的,而不是预期的自定义元素行为,那么它们都将具有相同的状

我认为在Aurelia中使用依赖注入时,默认情况下会得到单例。自定义元素似乎不是这样

假设我有3个名为a、b和c的自定义元素。a和b是同一页上的同级。c是b模板中的一个元素。我正在给a注射c

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


下面是一个plunker示例:

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

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


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

我想我在这里找到了我的答案:一些相关信息,尽管不完全相同: