script.js
for(var i = 0;i<$scope.data_acc_lv.length;i++)
{
var input3 = {
"_id": $scope.accLvID + i,
"acc_id":$scope.accLvID,
"name": $scope.data_acc_lv[i].names,
"read": $scope.data_acc_lv[i].read,
"execute": $scope.data_acc_lv[i].execute,
}
$http.post("http://localhost:1234/access_menu",input3)
.success(function(res){
if(res.error == 0)
{
}
});
}
script.js
app.post('/access_menu',function(req,res){
var IDMenu = req.body._id;
var Forein = req.body.acc_id;
var Name = req.body.name;
var Read = req.body.read;
var Execute = req.body.execute;
var data = {"error":1,"Access_menu":""};
if(!!Name && !!Read && !!Execute)
{
db.collection("access_menu").insert({_id:IDMenu,acc_id:Forein,name:Name,read:Read,execute:Execute},function(err,req){
if(!!err)
{
data['Acess_menu'] = "input error";
}
else
{
data['error'] = 0;
data['Access_menu'] = "input berhasil"
}
res.json(data);
});
data = {"error":1,"Access_menu":""};
}
});
поэтому я пытаюсь ввести данные из таблицы в базу данных, но всегда получал значение из последнего индекса (все предыдущие значения заменяются на последнее значение индекса), поэтому в чем причина проблемы. спасибо
Вы можете обернуть код внутри цикла for в сразу вызываемой функции
(function( i ) {
var input3 = {
"_id": $scope.accLvID + i,
"acc_id":$scope.accLvID,
"name": $scope.data_acc_lv[i].names,
"read": $scope.data_acc_lv[i].read,
"execute": $scope.data_acc_lv[i].execute,
}
$http.post("http://localhost:1234/access_menu",input3)
.success(function(res){
if(res.error == 0)
{
}
});
})(i);
Надеюсь это поможет.
var temp = [];
for(var i = 0;i<$scope.data_acc_lv.length;i++){
var input3 = {
"_id": $scope.accLvID + i,
"acc_id":$scope.accLvID,
"name": $scope.data_acc_lv[i].names,
"read": $scope.data_acc_lv[i].read,
"execute": $scope.data_acc_lv[i].execute,
}
temp.push(input3)
}
$http.post("http://localhost:1234/access_menu",temp )
.success(function(res){
if(res.error == 0)
{
}
});
почему бы просто не форматировать массив, а затем отправить весь массив на столбе, а затем зациклиться на вашем скрипте.js?
$scope.data_acc_lv.map(function(item, index){ return { '_id: item.'... }; });
.success
устарел метод$http
..then().catch()
. Что находится в$scope.accLvID
?