如何在更改数据库后更新angularjs视图

时间:2015-12-28 17:17:47

标签: javascript angularjs node.js mongodb

我有简单的ngResource工厂:

$apply

这给了我一个非常好的CRUD动作。但问题是当我通过发送PUT / POST / DELETE请求来更改/ api数据时,我的视图没有自动刷新。 我需要手动更新页面才能看到我的更改。我尝试使用$scope.users = User.query()(抛出$ digest正在进行中)或将<tr ng-repeat="user in users"> <td> {{user.name}} </td> <td> <a ng-click="save(user)">SAVE</a> </td> 放入回调函数中(在页面上闪烁,看起来像是自动刷新&#39;用户&#39;数组)。

使用ngClick指令向服务器发出请求。例如:

VIEW.html

$scope.users = User.query();

$scope.save = function (user) {
  user.$update();
}

CONTROLLER.js

router.put("/", function (req, res, next) {
  User.findByIdAndUpdate(req.body._id, req.body, function (err, user) {
    if (err) return next(err);
    return res.json(user);
  });
});

NODE.js + Mongodb

splice

P.S。

我不认为push$scope.users方法return Tasks.find({}, { fields: { completed: 0 }}) 是完全使用Angularjs CRUD应用程序的正确方法

1 个答案:

答案 0 :(得分:0)

好吧,解决方法是在{new: true}中添加选项findBy - mongoose方法:

router.put("/", function (req, res, next) { 
  User.findByIdAndUpdate(req.body._id, req.body, {new: true}, 
    function (err, user) {
      if (err) return next(err); 
      return res.json(user); 
  }); 
});