【发布时间】:2016-08-05 09:26:55
【问题描述】:
我正在构建 Angular/Express 应用程序,我使用控制器加载数据并尝试在函数中处理数据,但在控制台中出现错误
无法读取未定义的属性“toLowerCase”
当我手动编写 JSON 数据时,它工作得很好。 有人遇到过这个错误,为什么会这样?
编辑:另外我希望函数在点击时起作用,当我不希望它加载时,我也使用来自listData 的数据,所以我知道它已加载
控制器
var self = this;
self.listData = [];
var self = this;
self.listData = [];
$http.get('/myList')
.success(function (data) {
self.listData = data;
console.log(data);
})
.error(function (data) {
console.log('Error: ' + data);
});
self.myFunc = function(){
var map = self.listData.reduce(function (p, c) {
p.set(c.name.toLowerCase(), c.surname);
return p;
}, new Map());
console.log(...map);
}
【问题讨论】:
-
http.get 是异步的
-
在reduce函数里面做console.log(c),看看数据是否正确。
-
仅供参考 .success 和 .error 已被弃用。请改用 .then 和 .catch。
-
使用console.log查看数据。 chrome 开发工具还有一个“网络”选项卡,可以显示传入的数据流
标签: javascript angularjs json ajax