我设置了MEAN应用程序,但是,我的某个模型无法正常运行。出于某种原因,我无法发布到我的数据库。请查看下面的代码:
模式
hitCounter
服务器(部分)
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();
});
};
});
当我点击添加组时,我没有得到任何错误,但是,我的两个ng-model 用户和名称没有通过。当我使用 $ scope.group._id, $ scope.group.user 和 $ scope.group.name 从控制器调用console时他们都回来了未定义。
有人能够看到我做错了吗?
提前谢谢你。
答案 0 :(得分:0)
我对您的代码的观察结果如下 -
最初在调用refreshGroup()时,它会将$ scope.group设置为空字符串,这会使得group.user和group.name的HTML部分为undefined。
单击add group后,您将返回相同的未定义值,并且现在将相同的未定义值传递给API并重复循环。
根据我的理解,不要将$ scope.group设置为空字符串,而只是将其替换为服务器数据,例如$ scope.group = response。
此外,在使用它们之前,使用默认值初始化$ scope变量是一个好习惯。