Angular TypeScript父类实例变量返回为未定义
我有两个名为Angular TypeScript父类实例变量返回为未定义,angular,typescript,typescript2.0,Angular,Typescript,Typescript2.0,我有两个名为Member的typescript类和另一个abstractclassComponenetAction组件操作类将成员作为实例变量 export abstract class ComponentAction{ public member:Member constructor(){ } setMember(member:Member){ this.member = member; } getMember(){ return this.member; }} 成员类 e
Member
的typescript类和另一个abstract
classComponenetAction
<代码>组件操作类将成员作为实例变量
export abstract class ComponentAction{
public member:Member
constructor(){
}
setMember(member:Member){
this.member = member;
}
getMember(){
return this.member;
}}
成员类
export class Member{
membername:String
isadmine:String
constructor(name:String,admine:String){
this.membername = name;
this.isadmine = admine;
}}
ComponentAction
类是我的Angular 2组件类的父类LoginComponent
类扩展了该ComponentAction
类,并在登录期间设置成员。该成员值设置正确,但当我试图从另一个组件类(也扩展了ComponentAction
)检索同一成员时,我得到了“未定义”
登录组件
export class LoginComponent extends ComponentAction{
isloggedIn:boolean = true;
constructor(private http :Http , private router:Router){
super();
}
validate(ngform:NgForm){
console.log('values :'+ngform.value)
var user = ngform.value.inputEmail ;
this.http.post('/api/validate/login', {email:ngform.value.inputEmail,password:ngform.value.inputPassword})
.map(result => result.json())
.subscribe((result) => {
this.isloggedIn = result.isvalid;
let member = new Member(user,result.isadmine);
super.setMember(member);
if(this.isloggedIn){
this.router.navigate(['./dash'])
}
})
}
}
我试图在仪表板组件中获取成员信息
export class DashBoardcomponent extends ComponentAction {
user:string;
private sub: any;
constructor(){
super();
console.log('dashboard controller super:'+super.getMember());
}}
为什么在
路由器.navigate()
?之后无法获取数据,则成员必须是静态属性,才能与其他实例共享:
export abstract class ComponentAction{
static member:Member
constructor(){
}
setMember(member:Member){
ComponentAction.member = member;
}
getMember(){
return ComponentAction.member;
}}
感谢它的工作,还有一个问题,我如何在角度组件中使用此成员变量。这意味着我如何在仪表板组件中禁用member.membername?当我在组件Html中尝试member.membername时,我得到了一个未定义的成员,您可以这样做:{{getMember().membername}