javascript - Kan inte ställa in array-egenskap i angular6
Jag behöver ställa in array-egenskap i Angular 6 med denna kod :
this.addupdate.roleids=this.selectedRole;
men det visar mig detta fel:
FEL TypeError: Kan inte ange egenskapen 'roleids' av undefined vid AccessLevelComponent.push../src/app/admin/admin/dashboard/role/access-level/access-level.component.ts.AccessLevelComponent.AddRoleClaim (access-level.component.ts:60)
selectedRole:string[]=['1011','1010','1005'];
och mitt gränssnitt :
export interface IAddorupdateRole {
roleids:string[];
roleid:number;
}
detta är min kod :
public AddRoleClaim(){
console.log("enter AddRoleClaim.Ts");
this.addupdate.roleids=this.selectedRole;
this.addupdate.roleid=this.roleId;
this.roleService.AddOrUpdateRoleCalim(this.addupdate).subscribe((data)=>
{
console.log("seccess" + data);
}
);
}
Vad är problemet? Hur kan jag lösa det?
Svar #1
roleids ska nås på this.addupdate men uppenbarligen är this.addupdate odefinierad. Kanske har den inte initialiserats än.
Försök att initiera this.addupdate till ett grundläggande objekt i ngOnInit ungefär så här:
addupdate: IAddorupdateRole;
ngOnInit() {
this.addupdate = {
roleids = [],
roleid = 0
}
}
Här är en Exempel StackBlitz för din referens.
