【发布时间】:2020-10-12 17:30:44
【问题描述】:
我正在开发一个读取 excel 文件并将其内容上传到 ui.grid 的应用程序。 那部分工作得很好。 我还需要创建第二个具有相同数据但目的不同的数组,用于第 3 方 api 调用。
数组需要有这种格式:
{
"users": [
{
"name": "frank",
"email": "frank@email.com"
},
{
"name": "mike",
"email": "mike@email.com"
}
]
}
目前我的数组看起来像:
data: Array(5)
0:
Email: "janderson@email.com"
Name: "Jack Anderson"
1:
Email: "ejohnson@email.com"
Name: "Ed Johnson"
2:
Email: "dpoole@email.com"
Name: "Dead Poole"
3:
Email: "hschmidt@email.com"
Name: "Hank Schmidt"
4:
Email: "salves@email.com"
Name: "Steven Alves"
我正在使用的代码:
$scope.arr = new Array;
// SEND THE FILES.
$http(request)
.then(function (data) {
angular.forEach(data.data, function (item) {
var b = {
Name: item.Name,
Email: item.Email
};
$scope.arr.push(b);
});
}).error(function (error) { });
}
$scope.gridData = { data: 'arr' };
如何更改代码或添加代码,以创建符合我需要的格式的数组?
感谢您的帮助。 伊拉斯莫
更新
这是我添加推荐后的代码
.controller('myController', function ($http) {
var formdata = new FormData();
var vm = this;
vm.getTheFiles = function ($files) {
angular.forEach($files, function (value, key) {
formdata.append(key, value);
});
};
// SEND FILES TO THE API USING POST METHOD.
vm.uploadFiles = function () {
var request = {
method: 'POST',
url: '/api/fileupload/',
data: formdata,
headers: {
'Content-Type': undefined
}, transformRequest: angular.identity
};
vm.arr = new Array;
// SEND THE FILES.
$http(request).then(function (data) {
angular.forEach(data.data, function (item) {
var b = {
name: item.Name,
email: item.Email
};
vm.arr.push(b);
});
}).catch(function (error) {
console.log("Error: " + error);
});
var items = vm.arr.map((item) => {
return {
name: item.name,
email: item.email
};
});
var panelists = {
"panelists": items
}
console.log(panelists);
}
vm.gridData = { data: 'arr' };
【问题讨论】:
-
你的应用支持
ES6吗? -
不知道怎么回答,我正在使用带有 c# 编程语言和前端 angularjs 的 web api/mvc 解决方案。
-
当 7 年前 Google 建议不要这样做时,为什么人们仍然将 $scope 注入到他们的控制器中?查看如何使用控制器作为语法和组件。
-
@Adrian Brand - 我按照您的建议进行了搜索,并相应地对我的代码进行了一些更改。我更新了上面的代码。谢谢
标签: javascript arrays angularjs