2016-09-21 4 views
0

Ich versuche, meine Tabellendaten mit den Daten der Datenbank zu synchronisieren.MEAN App - Aktualisierung der Tabelle nach DB Collection Update

On Data Change:

$scope.changeStatus = function($event,label,status){ 
    var target = $event.currentTarget; 
    target = $(target).parents('tr').attr('id'); 
    $http({ 
     method: 'POST', 
     url: '/update', 
     params: { 
      trgt : target, 
      label : label, 
      labelstatus : status, 
      searchQuery : $scope.search 
     } 
    }) 
    .success(function(data){ 
     console.log(data); 
     $scope.events = data; 
    }) 
    .error(
    function(error){ 
      console.log(error) 
    }); 

} 

Dann:

app.post('/update', function(req,res){ 
    ImportCollection.findOne({ _id : req.query.trgt },function(err,doc){ 
     doc.label.label = req.query.labelname; 
     doc.label.status = req.query.labelstatus; 
     doc.save(); 
}); 

// BIS HIER FINE

if(req.query.searchQuery){ 
ImportCollection.find({$or:[ 
    {'localizedData.0.title' : {'$regex': req.query.searchQuery, $options: 'i' }}, 
    {'licensor.name' : {'$regex': req.query.searchQuery, $options: 'i'}} 
    ]}) 
    .exec(function(err, imports){ 
     if(err) throw err 
     res.json(imports) 
     }) 
    } else{ 
     ImportCollection.find({},function(err, imports){ 
      if(err) throw err 
      res.json(imports) 
      }) 

    } 
}); 

einfach alles funktioniert, aber dann ist die Antwort, die die Tabellendaten aktualisieren sollte, ist immer eine Anfrage zurück. So aktuelle Daten = Live, ich stelle es auf QA und nichts passiert. In der Tabelle wird weiterhin Live angezeigt. Sobald ich es jetzt ändere, sagen wir zu DENIED, zeigt die Tabelle QA an. Ich hoffe, es ist jetzt klarer.

Hat jemand eine Idee?

Antwort

0

Vorbei an der find() Block als Callback-Funktion zum doc.save() -Methode für mich gearbeitet:

doc.save(function(err){ 
      if (err) throw error 

      var query = req.query.searchQuery; 
      if(query) { 
       ImportCollection.find({$or:[ 
        {'localizedData.0.title' : {'$regex': req.query.searchQuery, $options: 'i' }}, 
        {'licensor.name' : {'$regex': req.query.searchQuery, $options: 'i'}} 
        ]}).exec(function(err, imports){ 
        if(err) throw err 
        res.json(imports) 
       }); 
      } else{ 
       ImportCollection.find({}).exec(function(err, imports){ 
        if(err) throw err 
        res.json(imports) 
       }); 
      } 


     }); 
Verwandte Themen