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.