Javascript 如何使用ToDeleteItems数组删除多个嵌套对象

Javascript 如何使用ToDeleteItems数组删除多个嵌套对象,javascript,angular,Javascript,Angular,我试图使用一个清单从集合中选择位置,并将它们存储到一个名为ToDelete:[{{u id:String}]的数组中。有了这个数组,我想对Collections对象内部的位置运行它,并删除它们 我将集合ID存储为参数,将数组存储为主体。我已将该阵列记录在控制台中,因此我知道它具有我要删除的ID,并将其正确地传递给服务 mongoose的服务器端功能应该是什么样子?这是我最好的尝试 //DELETE COLLECTION LOCATIONS collectionRouter.post('remov

我试图使用一个清单从集合中选择位置,并将它们存储到一个名为ToDelete:[{{u id:String}]的数组中。有了这个数组,我想对Collections对象内部的位置运行它,并删除它们

我将集合ID存储为参数,将数组存储为主体。我已将该阵列记录在控制台中,因此我知道它具有我要删除的ID,并将其正确地传递给服务

mongoose的服务器端功能应该是什么样子?这是我最好的尝试

//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
      });
    });
});
这是我的收藏品。服务

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()));
  }

谢谢大家。

你们可以这样做-

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 => Observable.of(`Bad Promise: ${error}`));
  }

这是okie,上面的函数没有问题。:(main.bundle.js:576 TypeError:error.json不是CatchSubscriber.selector的函数,它返回的代码是200,不是我提供的代码是,但您可以使用response.json({isSuccess:false,err:err})用于记录错误部分,而不会使系统崩溃functions@hardy谢谢,我应该把它放在收集服务的哪一部分?我把它放在map中的response.json函数中,但它说参数是错误的,结果我需要一个“/”来完成我的路线。