附加:
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");
}
}
为什么?
答案 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
}
}
我在组件中使用继承,它们工作正常。