2015-11-20 51 views
0

我有一個平均應用程序設置,但是,我的一個模型是不能正常工作。出於某種原因,我無法發佈到我的數據庫。請查看下面我的代碼:angularjs不發佈到數據庫

模式

var GroupSchema = Schema({ 
    name : String, 
    posts : [{type: Schema.Types.ObjectId, ref: "Post"}], 
    user : {type:String, ref:"User" }, 
    created : {type:Date, default: Date.now} 
}); 

module.exports = mongoose.model('Group', GroupSchema); 

服務器(部分)

router.route('/groups') 
    .post(function(req, res) { 
     var group = new Group(); 
     group.name = req.body.name; 
     group.user = req.body.user; 
     group.save(function(err) { 
      if (err) 
       res.send(err); 

      res.json({ message: 'group created!' }); 
     }); 
    }) 
    .get(function(req, res) { 
     var current_user = req.user; 
     console.log("req: " + req) 

     Group.find({ user: current_user._id }).exec(function(err, groups) { 
      if (err) throw err; 

      // show the admins in the past month 
      console.log(groups); 
      res.json(groups); 
      console.log("current user:" + current_user); 
     }); 
    }); 

控制器(部分)

myApp.controller('sideNav', function ($http, $scope, $timeout, $mdSidenav, $log) { 
    var refreshGroup = function(){ 
     $http.get('/api/groups').success(function(response) { 
      console.log('I got the group data! :D'); 
      $scope.groups = response; 
      $scope.group = ""; 
     }); 
    } 
    refreshGroup(); 

    $scope.addGroup = function() { 
     //$scope.post.url = parenturl; 
     console.log($scope.group._id); 

     $http.post('/api/groups', $scope.group).success(function(response){ 
      refreshGroup(); 
     }); 

    }; 
    }); 

圖(局部)

<div id="creategroup" ng-show="showAddGroup"> 
<input id="new-group-user" style="display:none !important;" class="hidden form-control" ng-model="group.user" ng-init="group.user='<%= user._id %>'" placeholder="{{group.user}}" value="{{group.user}}"> 
<md-input-container> 
    <label for="input_1">New Group</label> 
    <input id="newGroup input_1" style="display:inline !important;" class="ng-pristine form-control" ng-model="group.name" /> 
</md-input-container> 
<md-button style="display:inline !important;" id="theGroupButton" class=" hidden btn btn-primary" ng-click="addGroup()">Add Group</md-button> 

當我點擊添加組我沒有得到任何錯誤回報,但是,我的兩個NG-車型用戶不會通過。當我從控制器console.log使用$ scope.group._id,$ scope.group.user$ scope.group.name它們都返回undefined。

是否有人能夠看到我做錯了什麼?

預先感謝您。

回答

0

我從你的代碼的觀測是繼 -

  1. 最初,當你調用refreshGroup(),它會讓你的$ scope.group設置爲空字符串,這使得HTML部分是group.user和group.name未定義。

  2. 點擊添加組後,您將返回相同的未定義值,現在將相同的未定義值傳遞給API並重復循環。

按我的理解沒有設置$ scope.group到空字符串,而不是隻與諸如scope.group $ =響應服務器的數據替換它。

此外,在使用它們之前,初始化$ scope變量及其默認值是一種很好的做法。