![](/img/trans.png)
[英]NodeJS, AngularJS and Mongo creating and updating document returning wrong data
[英]Updating mongo data with angularjs
有一個帶有 angular 和 mongo 的應用程序。 這是我的 api 的一部分,在女巫中,我已經發布並提出了請求。 發布請求工作正常,但是當我放置數據時,出現錯誤“無法設置未定義的屬性‘typelocal’”。 在郵遞員中放置請求工作正常:
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('/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;
})
問題出在服務上
.factory('UpdateFlat', function($http, $routeParams){
var flatFactory = {};
flatFactory.update = function(flatData){
return $http.put('/api/realestate/flats/edit/' + $routeParams.id, flatData);
};
return flatFactory;
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.