繁体   English   中英

用于填充强类型变量的 Angular 方法

[英]Angular Method for populating a strongly-typed Variable

我是 Angular 的新手,正在为此苦苦挣扎。 如果我的措辞不正确,请道歉; 我希望你能关注我。

我有一些带有单击事件的 HTML,该事件返回选择的一行数据。 我想填充一个基于我创建的模型的变量。 点击事件返回数据没有问题:当我记录返回时,我看到在控制台中选择的数据。 模型也不是问题,我在其他地方使用过不同的模型。 我的问题是,在这种情况下,变量是一个强类型数组,我似乎无法成功地将行数据分配给该数组。

这是我定义变量的方式:

public selectedItem: thisModel[];

这是我尝试将所选行的值分配给 selectedItem 变量的方法的最新版本:

getItemInfo(row: any[]){
      this.selectedItem =[];
      var selectedRow = row[0];
      this.selectedItem[0].Description= selectedRow.Description;
      this.selectedItem[0].StartDate= selectedRow.StartDate;
      this.selectedItem[0].EndDate= selectedRow.EndDate;
  }

为了更好地衡量,这是我已导入到组件中的模型:

export class thisModel {

    UnitCode: number;
    Description: string;
    StartDate: Date;
    EndDate?: Date;

}

不幸的是,控制台错误不是将所选行的值分配给变量,而是显示:无法设置未定义的描述属性。

正如我之前所说,我已经尝试了这种方法的许多不同版本,都给出了相同的结果。 我哪里错了?

感谢所有回答的人。

您需要在设置值之前检查 null 和 undefined 并使用 push 方法将对象插入到selectedItem数组

getItemInfo(row: any[]){
      this.selectedItem =[];
      var selectedRow = row[0];
      if (selectedRow != null && selectedRow != undefined){
        this.selectedItem.push(
        { 
         Description: selectedRow.Description,
         StartDate: selectedRow.StartDate,
         EndDate: selectedRow.EndDate
        });
      }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM