【发布时间】:2015-09-15 06:56:39
【问题描述】:
我正在尝试删除嵌套对象,但由于某种原因,我做错了什么,因为我似乎无法访问嵌套对象。我可以删除未嵌套的对象。
这是我的代码
json:
{
"_id": ObjectId("55904d2da35bf71c06184f60"),
"title": "h1",
"url": "h1",
"menuIndex": NumberInt(0),
"date": ISODate("2015-06-28T21:12:38.256Z"),
"contents": [
{
"order": NumberInt(0),
"data": "something",
"_id": ObjectId("55904d38a35bf71c06184f62")
},
{
"order": NumberInt(1),
"data": "not something",
"_id": ObjectId("55904d49a35bf71c06184f63")
}
],
"__v": NumberInt(0)
}
API:
router.post('/content/delete/:id/:contentId', sessionCheck, function(req,res) {
var id = req.body._id;
var contentId = req.body._id;
Page.update({
_id: id
}, {
$pull: {'contents': {
_id: contentId
}}},
function(err){
if(err)
return res.send(err);
}
);
});
工厂:
.factory('pagesFactory', ['$http',
function($http) {
return {
deleteContent: function(id,contentId) {
return $http.post('/api/content/delete/'+ id + '/' + contentId);
}
};
}
])
控制器:
$scope.deleteContent = function(id,contentId) {
pagesFactory.deleteContent(id,contentId);
};
HTML:
<div ng-repeat="data in pageContent.contents track by data.order">
<button class="btn btn-success" ng-click="deleteContent(pageContent._id,data._id)">Delete</button>
<div ng-bind-html="trustAsHtml((data.data))">
</div>
</div>
【问题讨论】:
-
删除嵌套对象的函数在哪里?
-
如果我理解正确的话,你是不是要删除内容的键值?
-
是的,完全正确。但不仅仅是与 contentId 匹配的那些。并且该功能在我的工厂中。
-
应该是req.params.id和req.params.contentId
-
我会尝试一下,但我可以使用 req.body._id 获得两个 ID。
标签: angularjs node.js mongoose