angular - 在 TypeScript 函数中设置迭代未正确评估
问题描述
当我尝试运行以下代码时,我不断在控制台中收到此消息:“undefined is not an object (evalating 'this.courseAvailThisTerm')”。courseAvailThisTerm() 函数可以正常工作,因为它可以在其他上下文中工作。任何人都知道为什么我不断收到此错误消息?我尝试更改 for 循环版本,但这也不起作用。
for(let quarter of degreePlan) {
foundationCourseSet.forEach(function(fc) {
if(this.courseAvailThisTerm(fc, quarter.term))
console.log("It was avail!");
});
}
解决方案
尝试这个:
for(let quarter of degreePlan) {
foundationCourseSet.forEach((fc) => {
if(this.courseAvailThisTerm(fc, quarter.term))
console.log("It was avail!");
});
}
我更改function (fc) {..}
为箭头函数(fc) => {...}
,它保留this
在函数执行的上下文中。
推荐阅读
- django - Django:具有基于类的视图和清晰表单的本地时间表示
- linux - While循环测试bash脚本中是否存在文件
- firebase - 如何在颤动中将某些页面授权给不同的用户
- java - JUnit5 中是否可以有多个聚合器从不同的索引开始?
- java - 无法将文件写入内部存储Android
- flutter - 如何从 List Flutter 中的 Map 中检索值?
- ios - ios模拟器打不开,怎么解决?
- time-series - facebook 先知预测未来固定日期的价值
- git - Docusaurus 发布-gh-pages
- amazon-web-services - 使用 SNSEvent *和* 配置 Lambda 使用协议创建订阅:lambda 只生成一个订阅,但是哪个?