Abs*_*ner 7 javascript ajax json angularjs
我正在构建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);
}
Run Code Online (Sandbox Code Playgroud)
您可以调用将数据转换为小写的.success函数http.get。这样您就知道数据已到达。现在您可能太早执行此函数了,这意味着您的列表中还没有数据。
如果您尝试对数据运行 toLowerCase(),在实际检索数据之前,您将收到此错误。这是您在处理网络请求时要学习处理的事情之一。
例如,像这样编写代码就可以了。
$http.get('/myList')
.success(function (data) {
self.listData = data;
myFunc(listData);
console.log(data);
})
.error(function (data) {
console.log('Error: ' + data);
});
}
function myFunc(){
var map = self.listData.reduce(function (p, c) {
p.set(c.name.toLowerCase(), c.surname);
return p;
}, new Map());
console.log(...map);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |