如何在Angular中声明一个带有返回方法的变量作为值?



我使用[ngModel]来保存Angular中所选选项的值,但默认值必须是一个已经存在的选项,我可以通过这个方法检索

getPersonnageByIdd(id: string) {
const persoSelectionne = this.personnages.find((x: { id: string; }) => x.id === id);
return persoSelectionne;
}

问题是,如果我声明一个变量,该方法的返回值是这样的

persoDefault = this.getPersonnageByIdd("demochar").name;

整个组件崩溃!经过大量的研究,我没有找到这个问题的答案,请帮助。认为,

我可以把方法直接放在[ngModel]中,默认值就可以工作了,但是我需要跟踪被选中的选项,我需要一个变量来做这件事。

我猜this.personnages没有元素demochar。在本例中,findgetPersonnageByIdd返回undefined

一个解决方案是使用可选链接。

persoDefault = this.getPersonnageByIdd("demochar")?.name;

在您提供的代码中,没有名为" name ";在getPersonnageByIdd()提供的结果中。

我是这样做的

// Assuming that the current component has all the people loaded into an array called peopleList. You want to return the age of the Person which you have found by their id.
getPersonAgeById(id: number) {
Person foundPerson = this.peopleList.find(x => x.id === id)
return foundPerson.age; // also assuming that the Person object has an attribute called age of with the type number.
}

还有一些建议:

  • 正确的命名类,函数,变量是非常重要的,能够跟踪一切。
  • 使用字符串表示"id"是不寻常的(尽管在这种情况下很难根据您提供的代码量做出判断)。欢迎与我们分享相关课程

正如你们中的一些人所指出的,问题在于没有名为" name "的属性。在getPersonnageByIdd()提供的结果中,因为我需要更改我的API请求;调用API返回的对象不包含所需的所有信息。谢谢你们为我指出正确的方向。

相关内容

  • 没有找到相关文章

最新更新