Aurelia class 继承自定义元素

Aurelia class inheritance with custom elements

我是 Aurelia 的新手,正在尝试对自定义元素使用继承:

base.js

import {bindable, inject} from 'aurelia-framework';

@inject(Element)
export class BaseCustomElement {
    list = [1]
    constructor() {
        console.log(this.list)
    }
}

control1.js

import {bindable, inject} from 'aurelia-framework';
import {BaseCustomElement} from 'base';

@inject(Element)
export class Control1CustomElement extends BaseCustomElement{
    list = [1,3]
    constructor() {
        super()
    }
}

我哪里错了?

在这里使用 extends 而不是 extend:

export class Control1CustomElement extend BaseCustomElement{

如果没有更多细节,就不可能知道问题出在哪里,但我猜它与列表的内容有关 - 但是,无论如何,作为第一个猜测

  • 从基础中删除“@inject(Element)”class
  • 将'element'添加到基础class和控件class
  • 的构造函数中
  • 从 control1 构造函数调用 super(element)
  • 可以在 super(...) 调用之后将 'this.list = [1, 3];' 放入 control1 的构造函数中,并接受基础 class 中的 this.list 只有一个元素,直到子 class 构造函数已完成。
  • ...或...将新列表内容添加为两个构造函数的参数,并将其传递给 super(...) 调用中的基 class。

不知道这是否会解决 'unexpected behaviour' 虽然我们不知道你在期待什么...