2015-07-20 65 views
0

我有小應用程序存儲劇集列表。我有表意甲,季節和表情節。 Table Seasons獲得了Serie的ObjectId類型的字段「serie」。現在我已經選擇了列表中的Serie項目,當我從下拉菜單中選擇一個項目時,getSeasons方法被觸發,但是我得到了400錯誤請求錯誤。MeanJS - 通過嵌套模型ID獲取項目列表

我的文件:

  1. series.server.routes.js

app.route('/serie/:serieId/seasons') 
 
    .get(seasons.seasonsList);

  • seasons.server.controller。 js
  • exports.seasonsList = function(req, res, id) { 
     
        Season.find({'serie': id}).exec(function(err, series) { 
     
        if (err) { 
     
         return res.status(400).send({ 
     
         message: errorHandler.getErrorMessage(err) 
     
         }); 
     
        } else { 
     
         res.jsonp(series); 
     
        } 
     
        }); 
     
    };

  • episodes.client.controller.js
  •  var Seasons = $resource('/serie/:serieId/seasons', {serieId: '@id'}); 
     
         Seasons.get({'serieId': $scope.serie}, function (data) { 
     
          console.dir(data); 
     
         });

    但是,儘管我已經路由組我會有400個不好的要求...爲什麼?

    我想才達到,當我在蒙戈鍵入此一樣的東西:

    db.seasons.find({'serie': new ObjectId('SerieId')})

    +0

    嘗試:'$ scope.serie._id'而不是實例。 – agastalver

    +0

    @AdolAurion我有適當的ID。這不是關於Id。這是關於查詢或我錯過了一些東西。 – Tomasz

    +0

    我實際上並不知道你在哪裏創建這個功能。但它應該在你的node.js文件中(不是角),我通常也使用['Model.find()'](http://mongoosejs.com/docs/2.7.x/docs/query.html)函數,而不是'query'。覈實。 – agastalver

    回答

    0

    的問題是參數。對問題的解決辦法是改變seasonsList方法來獲取參數從傳請求是這樣的:

    exports.seasonsList = function(req, res) { 
     
        Season.find({'serie': req.params.serieId}).exec(function(err, series) { 
     
        if (err) { 
     
         return res.status(400).send({ 
     
         message: errorHandler.getErrorMessage(err) 
     
         }); 
     
        } else { 
     
         res.jsonp(series); 
     
        } 
     
        }); 
     
    };