angular - 初始化一个数组后,它告诉我他在 promise 函数的“then”中是未定义的
问题描述
我的代码:
打字稿:
console.log(this.arr);
myService.getData(). then(data =>{
console.log(this.arr);
this.arr[0].myData = data;
});
chrome 1.arr.length=1 中的日志 - 数组已初始化 2. undefined
解决方案
那是因为“this”在两个范围内都是不同的。
console.log(this.arr);
myService.getData(). then(data =>{
console.log(this.arr);
this.arr[0].myData = data;
}.bind(this));
或者,甚至更好:
var self = this;
console.log(self.arr);
myService.getData(). then(data =>{
console.log(self.arr);
self.arr[0].myData = data;
});
推荐阅读
- c# - 如何从共享同一接口的对象列表中访问对象的特定属性
- python - Tox“错误:找不到文件:
" - javascript - 在 PHP 中单击下拉菜单中的“是”后显示输入文本?
- asp.net-mvc - Web API 帮助页面发现 API 但无法显示 API 描述页面
- swift - 如何将视图的尾随对齐与其父级的垂直轴对齐?
- ios - AudioKit:长笛的无限播放时间和频移?
- html - 如果列已满,如何使文本从一列流到另一列?如果问题没有意义,我会说明它。谢谢
- c# - bing 地图不会显示在 index.cshtml 上?
- alexa - 以编程方式执行 Alexa Skill
- angular - Cordova + Angular 8 没有运行 cordova.js