工厂:
angular.module('clientApp').factory('Di', function($http) {
return {
create: function(dis){
return $http.post('/dis', dis);
}
});
控制器:
'use strict';
angular.module('clientApp').controller('AdminCtrl', function($scope, toastr, Di) {
$scope.di = {};
$scope.dis = [];
$scope.add = function(){
Di.create($scope.di).then(function(response){
console.log(response, 'front data post')
$scope.dis.push(response.data);
$scope.di= {};
});
};
});
当我在console.log()响应时,我在response.data中看到的唯一东西就是hashKey。我确实在response.config.data中看到了这个对象,但是从我在网上看到的,这只是我发送到数据库的原始对象,而不是返回的承诺,对吧?
数据保存到数据库中。
我做错了什么?我已经与其他承诺成功完成了类似的配置,但响应并不是我在这里所期待的。
API
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var DiSchema = new mongoose.Schema({
name: { type: String, lowercase: true , required: true },
photo: { type: String },
email: { type: String, unique: true, lowercase: true },
year: { type: Number},
timestamp: { type : Date, default: Date.now },
description: { type: String},
location: { type: Array },
social: {
website: {type: String},
facebook: {type: String },
twitter: {type: String },
instagram: {type: String }
}
});
DiSchema.methods.create = function(o, cb){
this.model.save(o, cb);
};
module.exports = mongoose.model('Di', DiSchema);
控制器:
'use strict';
var Di = require('../models/di');
exports.create = function(req, res){
Di.create(req.body , user, function(err, di){
console.log('req.body.di', req.body);
res.send({di:di});
});
};
路线:
var dis = require('../contollers/dis');
app.post('/dis', dis.create);
答案 0 :(得分:2)
您的创建函数中有一个额外参数的拼写错误。
exports.create = function(req, res){
Di.create(req.body , function(err, di){
console.log('req.body.di', req.body);
res.send({di:di});
});
};
答案 1 :(得分:0)
我认为你应该将你的承诺与范围绑定。 那能解决问题吗?你能试试吗?
$scope.add = function(){
Di.create($scope.di).then(function(response){
console.log(response, 'front data post')
$scope.dis.push(response.data);
$scope.di= {};
}.bind($scope));
};