获取请求无法使用Post添加最新数据

时间:2017-06-16 08:24:20

标签: javascript angularjs

我正在尝试使用我刚刚使用Post添加的数据,我发送一个get请求来获取表中的所有数据,但它没有得到最后添加的数据是否有一个特定的逻辑我应该遵循以获取更新的数据?

这是我的控制器:

app.ajoutProjet= function () {
  // adding a new project (CreatProjet() is a service that uses Post to create a new project)
 Projet.createProjet(app.ajoutData);
  // getting all the projects
 Projet.getProjet().then(function(result){
  for(var i=0;i<result.data.projetsListe.length;i++){                      
      //Enters this condition if the name of the project is the one we just added
    if(result.data.projetsListe[i].NomProjet==app.ajoutData.NomProjet){
      app.ajoutData.projet_id=result.data.projetsListe[i].IdProjet;
      CP.createCP(app.ajoutData);
     }
   }
 }); app.successMsg = 'Project added...Redirection';

编辑:

这是项目服务:

//create a project
     createProjet : function (ajoutData) {
     return $http.post('/api/projets',ajoutData);
     },

 //get all projects
     getProjet : function () {
     return $http.get('/api/projets');
     }

所以项目是创建的,但是get请求不会在项目列表中返回它,有什么建议吗?

修改

这是我的Post方法详情:

router.post('/projets',function(req , res){
projet.Projet.sync({force: false}).then(function () {
  // Table created
 return projet.Projet.create({
     IdProjet : req.body.IdProjet,
     NomProjet: req.body.NomProjet,
     ResponsableApitech: req.body.ResponsableApitech,
     ResponsableClient: req.body.ResponsableClient,
     client_id: req.body.client_id,
     estArchive: req.body.estArchive

});

  });
});

2 个答案:

答案 0 :(得分:1)

当您在发布请求完成之前调用get请求时(当它仍在处理时)会发生这种情况。你需要等到帖子请求完成后再调用get请求。为此,您可以使用承诺链机制

Projet.createProjet(app.ajoutData).then(function(response){
  return Projet.getProjet();
})
.then(function(result){
  for(var i=0;i<result.data.projetsListe.length;i++){                      
      //Enters this condition if the name of the project is the one we just added
    if(result.data.projetsListe[i].NomProjet==app.ajoutData.NomProjet){
      app.ajoutData.projet_id=result.data.projetsListe[i].IdProjet;
      CP.createCP(app.ajoutData);
     }
   }
}); 

答案 1 :(得分:0)

问题出在post方法中,即使项目已创建,但没有错误检查,因此Projet.createProjet(app.ajoutData).then(function(response){//code})中的任何代码都不起作用,这是我做的修改:< / p>

router.post('/projets',function(req , res){
projet.Projet.sync({force: false}).then(function () {
  // Table created
 return projet.Projet.create({
     IdProjet : req.body.IdProjet,
     NomProjet: req.body.NomProjet,
     ResponsableApitech: req.body.ResponsableApitech,
     ResponsableClient: req.body.ResponsableClient,
     client_id : req.body.client_id,
     estArchive:req.body.estArchive

}).then(function(projet)
{
  if(!projet){
    res.json({ success: false, message: 'projet non ajouté'});
         }
   else{
  res.json({ success: true, message: 'projet ajouté', projet: projet});
       }
});
  });
});