【Angular2】Uncaught (in promise): TypeError: Cannot read property 'id'

背景

需要显示用户信息,用到了插值表达式和双向绑定
开始数据显示正常,但是浏览器一直报错,不知为何

因为可以正常运行,所以就继续做
但是用到后台返回值来切换编辑状态的时候,什么都不显示
所以就得解决了这个问题

问题

ERROR Error: Uncaught (in promise): TypeError: Cannot read property ‘id’ of undefined

TypeError: Cannot read property ‘id’ of undefined

解决

1.使用箭头函数

getStudents():void{
    this.studentService.getStudents().then(students=>this.students=students);
  }

2.在插值表达式中加入问号

{{student?.name}} //not {{student.name}}

说明:

因为在我们加载对象的时候,用的是异步模式,即使promise立刻被处理返回,但是浏览器在开始加载对象的时候,这个对象还是没有定义,所以也就读不到属性

参考:

https://stackoverflow.com/questions/38078741/angularjs-2-exception-error-uncaught-in-promise-typeerror-cannot-set-prope

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...