我目前正在尝试使用MEAN堆栈在我正在制作的应用程序中完成我的CRUD。
但是我在完成更新功能时遇到了麻烦。 在我的home.ejs中,我有一些名字(患者),当我选择其中一个时,他们的数据会显示出来。然后我有一个按钮,它将我引导到Details.ejs,它基于传递的_id,将显示正确的函数。 哪个是。但是,现在我需要一个表单,它将获取传递的数据,并使其可更新。
我怎么能这样做?
Details.ejs
<div>
{{patient.name}}
<form novalidate class="form">
Name: <input type="text" ng-model="title" /><br>
Age: <input type="text" ng-model="age" /><br>
<input type="text" ng-model="id" style="display:none;">
<input type="submit" ng-click="update(patient)" value="Save">
</form>
</div>
Detailscontroller:
.controller('detailsCtrl', [
'$scope',
'$stateParams',
'patients',
'patient',
function($scope, $stateParams, patients, patient){
console.log(patient.name)
console.log(patient._id)
$scope.title = patient.name;
$scope.age = patient.age;
$scope.patient = patient
$scope.update = function(patient){
patients.update({
name: $scope.title,
age: $scope.age
})
};
}])
;
为了更好的衡量,工厂方法和路线:
object.update = function(patient) {
return $http.put('/patients/' + patient._id ).success(function(data) {
object.patients.push(data)
});
};
路线:
router.put('/patients/:patient', function(req, res, next) {
req.patient.update(function(err, patient) {
if (err) { return next(err); }
res.json(patient);
});
});