【发布时间】:2016-06-03 05:54:34
【问题描述】:
在 angular2 中,假设我有一个 Parent 类和一个 Child1 类,它们具有相同的属性/成员和方法。如何初始化Child1类?
服务
@Injectable()
export class Parent {
constructor(
private currentImg: string,
private catImg: string,
private dogImg: string,
private enable: boolean) {
}
onMouseOver() {
enable = true;
currentImg = catImg;
}
onMouseClick() {
enable = false;
currentImg = dogImg;
}
}
其中一个子类想要扩展Parent类:
import {Parent} from "./Parent";
@Component({
selector: 'app',
templateUrl: 'app/child.html',
providers: [Parent]
})
export class Child1 {
private currentImg: string = "img/dog.png",
private catImg: string = "img/cat.png",
private dogImg: string = "img/dog.png",
private enable: false
constructor(private _parent: Parent) {
}
onMouseOver() {
this._parent.onMouseOver();
}
onMouseClick() {
this._parent.onMouseClick();
}
}
【问题讨论】:
-
如何初始化?要将
Parent的同名属性设置为Child1? -
是的,Parent 和 Child 具有相同的属性名称。此时调用 Child1 类的函数,例如 onMouseOver() { this._parent.onMouseOver(); },它只改变 currentImg 的值和 Parent Properties 的 enable。但我想更改 Child 类的那些属性值。你知道我该怎么做吗?
-
你想要没有继承(
Child1 extends Parent子句)?还是你不知道? -
你可以inject non-classes values进入构造函数,但是通过provider来定义每一个有点烦人。
-
我不知道如何在 anuglar2 中使用继承。在 Java 中,我们可以使用扩展。但是在这里,我被告知使用注入依赖来实现继承。我很困惑我该怎么做。根据我的示例,您知道必须在 angular2 中使用继承吗?
标签: angular typescript service