附加不会被要求扩展基类

时间:2017-06-30 07:27:34

标签: aurelia aurelia-binding aurelia-framework

在扩展基类时没有调用

附加

export class FieldBase{
  constructor() {

  }

  activate(model) {
    console.log("Inside Base Activate");
  }
}

export class FieldChild extends FieldBase{
  constructor() {
    super();
  }
  attached(){
    console.log("Inside Child Attached"); //NOT WORKING
  }
  activate(model) {
   super.activate(model);
    console.log("Inside Child Activate");
  }
}

这里FieldChild的附件没有被调用。但是如果我在FieldBase中添加附加方法,那么FieldChild的附件就可以了。 -

export class FieldBase{
  constructor() {

  }
  attached(){
    //added
  }
  activate(model) {
    console.log("Inside Base Activate");
  }
}
export class FieldChild extends FieldBase{
      constructor() {
        super();
      }
      attached(){//overriding
        console.log("Inside Child Attached"); //WORKING
      }
      activate(model) {
       super.activate(model);
        console.log("Inside Child Activate");
      }
    }

为什么?

2 个答案:

答案 0 :(得分:0)

据我所知,不幸的是Aurelia目前不能正确支持组件的继承。

答案 1 :(得分:0)

我不知道为什么,但基类必须有attached()方法。而且,如果你在这个方法中有一些代码,你必须在子类的attached()内调用它(除非你真的想要覆盖,当然)。例如:

export class BaseClass {
  attached() {
    //do something
  }
}

export class ChildClass extends BaseClass {
  attached() {
    base.attached(); //call base attached!
    // do something
  }
}

我在组件中使用继承,它们工作正常。