无法在angular6中设置数组属性

时间:2018-11-24 11:22:41

标签: javascript angular typescript angular6

我需要使用以下代码在angular 6中设置数组属性:

this.addupdate.roleids=this.selectedRole;

但是它显示了这个错误:

  

错误TypeError:无法设置未定义的属性“ roleids”       在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'];

和我的界面:

export interface IAddorupdateRole {
  roleids:string[];
  roleid:number;
}

这是我的代码:

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);
    }
  );
}

出什么问题了?我该怎么解决?

1 个答案:

答案 0 :(得分:2)

roleids将在this.addupdate上访问,但是显然this.addupdate是未定义的。也许还没有初始化。

尝试将this.addupdate初始化为ngOnInit中的基本对象,如下所示:

addupdate: IAddorupdateRole;

ngOnInit() {
  this.addupdate = {
    roleids = [],
    roleid = 0
  }
}

这是您推荐的Sample StackBlitz