0
我想使用一個清單從集合中選擇位置並將它們存儲到名爲ToDelete的數組中:[{_id:String}]。有了這個數組,我想運行一個Collections對象的內部位置並將其刪除。如何刪除幾個嵌套對象使用ToDeleteItems數組
我將集合ID存儲爲參數,將數組存儲爲主體。我有控制檯記錄數組,所以我知道它有我想刪除的ID,並正確地將它們傳遞給服務。
我的服務器端函數應該用貓鼬看起來像什麼?這是我最好的嘗試。
//DELETE COLLECTION LOCATIONS
collectionRouter.post('removeLocation/:id', function(req, res, next) {
Collection.update(
{_id: req.params.id},
{$pull: {locations: {_id: {$in:req.body}}}},
function (err, result) {
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
}
res.status(201).json({
message: 'Locations Removed',
obj: result
});
});
});
這裏是我的Collection.Service
removeCollectionLocation(collection: Collection, locations: string[]) {
let body = locations;
const headers = new Headers({
'Content-Type': 'application/json'});
const token = localStorage.getItem('token')
? '?token=' + localStorage.getItem('token')
: '';
return this.http.post('http://localhost:3000/collection/removeLocation/' + collection._id + token , body, {headers: headers})
.map((response: Response)=> response.json())
.catch((error: Response)=> Observable.throw(error.json()));
}
謝謝大家。
這是okie,觀察沒有問題的功能之上。 – hardy
:( main.bundle.js:576類型錯誤:error.json不是一個函數 在CatchSubscriber.selector 並返回的200代碼是沒有的代碼的我已經提供 –
是的,但你可以使用響應.json({isSuccess:false,err:err})用於記錄錯誤部分而不會崩潰你的函數 – hardy