【发布时间】:2015-06-17 15:48:03
【问题描述】:
我尝试将 cmets 保存到我的文章中
关于我的后端和架构的一些话
文章:
var DiscussSchema = new Schema({
...
user: {
type: Schema.ObjectId,
ref: 'User'
},
comments: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Comment'
}]
});
评论:
var CommentSchema = new mongoose.Schema({
body: {
type: String,
default: '',
required: 'Please fill Comment name',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
discuss: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Disquss'
}
});
我为我的服务器控制器添加了到服务器路由的路由
app.route('/api/discusses/:discussId/comments')
.all(discussesPolicy.isAllowed)
.post(discusses.comment);
还有我的 Angular 服务
angular.module('discusses').factory('Comments', ['$resource',
function($resource) {
return $resource('api/discusses/:discussId/comments', {
discussId: '@_id'
}, {
update: {
method: 'PUT'
},
});
}
]);
我在我的角度控制器中尝试了这么多版本的 addComment,但我总是得到错误 - 未定义
$scope.addComment = function(){
if($scope.body === '') { return; }
//Comment service
Comment.addComment(discuss._id, {
body: $scope.body,
user: 'user',
}).success(function(comment) {
$scope.discuss.comments.push(comment);
});
$scope.body = '';
};
如何保存评论???
【问题讨论】:
-
Comment.update({_id: discuss._id, body: $scope.body, user: 'user'}).success或者可能是 .post 而不是 .update 用于 db 中的新条目,这取决于服务器端的实现。
标签: angularjs express mean-stack meanjs