【发布时间】:2017-03-26 20:30:45
【问题描述】:
我有两个名为Member 的打字稿类和另一个abstract 类ComponenetAction。 ComponentAction 类有 Member 作为实例变量。
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'])
}
})
}
}
我尝试在DashboardComponent 中获取会员信息,我将其获取为undefined
export class DashBoardcomponent extends ComponentAction {
user:string;
private sub: any;
constructor(){
super();
console.log('dashboard controller super:'+super.getMember());
}}
为什么在router.navigate() 之后没有得到数据?
【问题讨论】:
标签: angular typescript typescript2.0