从Angular v2.0开始,inheritance is supported between components。
给定父类,通过依赖注入向提供者提供服务,是否可以定义一个子类,扩展(或继承)其父类,以便它可以访问父母的服务?
import {MyService} from './my.service'
import {OnInit} from '@angular/core'
@Component({
selector: 'parent-selector',
providers: [MyService],
templateUrl: 'my_template.html'
})
export class ParentClass implements OnInit{
public foobar: number;
constructor(protected _my_service: MyService){};
ngOnInit(){
foobar = 101;
}
}
@Component({
selector: 'child-selector',
templateUrl: 'my_template.html'
})
export class ChildClass extends ParentClass{
public new_child_function(){
// This prints successfully
console.log(this.foobar);
// This throws an error saying my_service is "undefined"
this._my_service.service_function();
}
}
当我们尝试从子级别调用new_child_function()
时,它会成功访问其父级成员 foobar ,但是对this._my_service.service_function()
的调用会为我们提供以下内容不那么有趣的错误:
Cannot read property 'get' of undefined
在这种特定情况下,孩子可以使用父母注入的服务 。我在想:
答案 0 :(得分:1)
将其设为http://www.sample.com/receiveUserDataAPI/receiver?&access_token=3658213e-5bb0-4c4b-89ca-f0f82513fc22
或public
,即
protected
如果您不在构造函数
constructor(protected _my_service: MyService){};
,protected
或private
中使用,例如DI,则变量public
的范围是_my_service
您无法使用其他功能。
您可以阅读有关Parameter properties以及如何声明和访问它们的更多信息。
通过在构造函数参数前加上辅助功能修饰符或
constructor { }
或两者来声明参数属性。