Aurelia类继承自定义元素

时间:2015-11-18 19:07:54

标签: javascript inheritance ecmascript-6 aurelia aurelia-validation

我是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()
    }
}

我哪里错了?

2 个答案:

答案 0 :(得分:3)

在此处使用extends而不是extend

export class Control1CustomElement extend BaseCustomElement{

答案 1 :(得分:2)

没有更多细节,我们无法知道问题是什么,但我猜它与列表的内容有关 - 但是,无论如何,作为第一个猜测怎么样

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

不知道这是否会解决“意想不到的行为”。虽然我们不知道你期待什么......