我有成分B,C,d,从A类继承角2:注射服务手动
我想用A类服务,但我不知道怎么把它注射,无需进它来自它的孩子。
我想什么是正常的注射: constructor(pageName: string = null, translate: TranslateService) {
但是当我做super()
建设A级,是因为我没有提供第二个参数抛出一个错误。
有没有办法使用Angular2注入父类?
角版本我不得不使用方法是:2.2.1
编辑:
一些示例情况: 我有很多的网页,每个人都可以显示一个加载器。相反,从每一个页面,每次注射的装载机和管理装载机的,我想要做的:
export class BaseComponent {
constructor(private loader: LoadingService) {}
showLoading() {
this.loader.show();
}
}
然后从组件本身继承:
@Component({
selector: "page-login",
providers: [UsersService],
templateUrl: "login.html"
})
export class LoginPage extends BaseComponent {
constructor(private usersService: UsersService) {
super();
}
}
现在LoginPage
有一个方法showLoading
从它是父母。
这可能适合你:http://stackoverflow.com/questions/37117698/angular2-use-imported-libs-from-base-class/37117732#37117732。 – pixelbits
@pixelbits谢谢,刚刚发现了另一个解决方法。我将TranslateService注入到应用程序中,然后将该实例保存在一个全局变量中,该变量是我数据存储的一部分(我知道,不应该这样做),并且它工作得很好。 – Amit
我不会称这是一个很好的模式。而你目前的例子并不反映这个问题。没有TranslateService。相反,有showLoading方法,我没有看到它应该在那里的原因。 – estus