我有简单的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应用程序的正确方法
答案 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);
});
});