-1
使用angular和mongo應用程序。 這是我api的一部分,在女巫我發佈並提出請求。發佈請求工作正常,但是當我把數據,我有一個錯誤「不能設置未定義的屬性'typelocal'」。在郵遞員PUT請求正常工作:使用angularjs更新mongo數據
var Flat = require('../models/flat.js');
.put('/realestate/flats/edit/:id', function(req, res){
Flat.findById(req.params.id, function(err, flat){
if(err){
res.send(err);
}
flat.typelocal = req.body.typelocal;
flat.save(function(err, flat){
if(err){
res.send(err);
}
res.json(flat);
})
})
})
.post('/realestate/flats/add', function(req, res){
var flat = new Flat({
creator: req.decoded.id,
typelocal: req.body.typelocal,
});
flat.save(function(err, newFlat){
if(err){
res.send(err);
return;
}
// io.emit('flat', newFlat);
res.json({message: "New Flat Created!"});
});
})
return api;
};
如果我改變我的PUT請求爲:
.put('/realestate/flats/edit/:id', function(req, res){
Flat.findById(req.params.id, function(err, flat){
if(err){
res.send(err);
}
res.json(flat);
})
})
我有一個對象,例如:
{
"_id": "55f51361589d7ff015c899df",
"creator": "55ab2ee75d4c5c901f2517f9",
"typelocal": "rrrr",
"__v": 0,
"created": "2015-09-13T06:10:41.054Z"
}
這是我的HTML中,巫婆我有更新數據的輸入:
<div ng-controller="EditFlatController as flat">
<form class="form-control">
<input type="text" class="form-control input-md" name="localtype" ng-model="flat.flatData.typelocal" placeholder="Typ lokalu" value="{{ flat.flat.typelocal }}">
<button ng-click="flat.editFlatSave()" class="my-btn my-btn-danger rebtn-add-add">Send</button>
</form>
</div>
這是我的控制器的一部分:
.controller('EditFlatController', ['UpdateFlat', '$http', '$location', '$routeParams', function(UpdateFlat, $http, $location, $routeParams){
vm = this;
$http.get('/api/realestate/flats/edit/' + $routeParams.id).success(function(data){
vm.flat = data;
})
vm.editFlatSave = function(){
vm.message = '';
UpdateFlat.update(vm.flatData)
.success(function(data){
vm.flatData = '';
vm.message = data.message;
$location.path('/realestate/flats');
})
}
}])
這是服務:
.factory('UpdateFlat', function($http){
var flatFactory = {};
flatFactory.update = function(flatData){
return $http.put('/api/realestate/flats/edit/:id', flatData);
};
return flatFactory;
})