使用get方法访问对象字段时,值始终未定义

时间:2018-07-01 13:04:43

标签: javascript angular typescript

我写了一个TypeScript模型,我写了一个get方法:

get comments(): [any] {
  return this.commentsTest;
}
set comments(comments: [any]) {
  this.commentsTest = comments;
}

其自身定义为私有的字段:

private commentsTest: [any];

在构造函数中,我按如下方式初始化了对象:

this.comments = commentsTest;

当我尝试使用get方法使用该字段时,它始终是未定义的, 但是如果我直接访问它(同时获得访问警告) 我确实得到了我想要的值:

openExtendedDetailsModal(comments) {
  console.log("***" + this.investorObject.comments); // undefined
  console.log(this.investorObject.commentsTest); // defined
  //this.commentsdDetails.altOpen(comments);
}

更新 这是我正在使用的代码:

investorObject: Investor;
prametersSubscription: Subscription;
id: string;

constructor(private investorService: InvestorsService, private route: ActivatedRoute) {}

ngOnInit() {
  this.prametersSubscription = this.route.params.subscribe(
    (params: Params) => {
      this.id = params.id;
      this.getInvestorData();
    }
  );
}

ngOnDestroy() {
  this.prametersSubscription.unsubscribe();
}

getInvestorData() {
  this.investorService.getSingleInvestorById(this.id).subscribe(
    data => {
      this.investorObject = data.data;
      console.log(this.investorObject.commentsTest);
    });
}

openExtendedDetailsModal(comments) {
  console.log("***" + this.investorObject.lastName); // defined
  console.log("***" + this.investorObject.comments); // undefined
  console.log(this.investorObject.commentsTest); // defined
  //this.commentsdDetails.altOpen(comments);
}

这是“投资者”类别的一部分: enter image description here 我在这里想念什么?

谢谢

1 个答案:

答案 0 :(得分:0)

我竭力解决这个问题,

我已按如下方式更改了模型:

1)更改了构造函数

constructor() {}

2)更改了commentTest字段的名称和类型:

private commentsTest: [Object];

3)启动如下:

this.investorObject = new Investor();
Object.assign(this.investorObject, data.data as Investor);

所以现在,我正在按我的意愿获得评论,对象的类型也是投资者。

enter image description here

谢谢