Aurelia的自定义元素单身人士

时间:2016-02-22 22:54:31

标签: ecmascript-6 aurelia

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

假设我有3个名为abc的自定义元素。 ab兄弟姐妹是同一页面。 cb模板中的元素。我正在c注入a

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

以下是一个掠夺者示例:http://plnkr.co/edit/Au80u0?p=preview

1 个答案:

答案 0 :(得分:4)

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

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

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