gpt4 book ai didi

javascript - 使用 angularJS 和输入类型 ="date"更新 mongodb 中的日期

转载 作者:行者123 更新时间:2023-11-30 16:21:03 24 4
gpt4 key购买 nike

我有一个 MongoDb student 集合。一个学生可以有许多类(class) (opl),其中包含开始日期和结束日期。我使用 Mongoose 在 server.js 中创建一个 REST 接口(interface):

//adres Schema
var adresSchema = new mongoose.Schema({
gemeente: String,
post: Number,
straat: String
})
//opl Schema
var oplSchema = new mongoose.Schema({
oplcode: Number,
geslaagd: Boolean,
startdatum: Date,
einddatum: Date,
})

//Studenten Schema
var studentSchema = new mongoose.Schema({
voornaam: String,
familienaam: String,
email: String,
adres: adresSchema,
foto: String,
ikl: Number,
opl: [oplSchema],
rijksreg: String,
gender: String,
tel: [String]
}, {collection:"studenten"})

我在模型上使用这条路线来查询学生:

/GET /api/studenten/:id  1 enkele student by id
apiRouter.get('/studenten/:id', function(req, res) {

return studentModel.findById(req.params.id,function(err, student) {
if (!err) {

res.send(student);// 1 student
}
else {
return console.log(err);
}
})

})

我的问题是如何使用 Angular 和 HTML5 input type="date"这需要 Date() 对象来显示 startdatumeinddatum 日期?我使用这样的 Angular 服务来创建 $scope:

.factory('studentService',['$resource', function($resource){
var urlBase = "api/studenten";
var studentResource = $resource(
urlBase + '/:_id',
{_id: '@_id'},
{update: {method:'PUT'}
}
)
return studentResource;
}])

然后在学生编辑 Controller 中,我用服务填充 $scope:

 .controller('StudentEditCtrl', ['$scope', '$routeParams', 'studentService', 'opleidingService','$location',
function ($scope, $routeParams, studentService, opleidingService, $location) {

//update student and his courses (opl)

$scope.subtitel = "Update student";
$scope.student = studentService.get({}, {'_id': $routeParams._id});

//save
$scope.save = function (student) {

if ($scope.student._id) {
//update

console.log("updating student " + student.familienaam);
studentService.update({_id: $scope.student._id}, $scope.student);
}
else {
//new student
$scope.student.$save();
}
$location.path('/studenten');
}

//更多的方法,有些东西省略了

我如何使用我的$scope.student.opl.startdatum dateStrings (ISODates) 创建一个日期对象用于

<input type="date" class="form-control" ng-model="opl.startdatum "  />

它的值是一个 ISO 字符串,我可以用它来更新类(class)日期。我一直在愚蠢地阅读自己,但没有人展示如何将 Mongoose ISOString 转换为 Date 对象......所有示例都以他们自己创建的新 Date() 对象开头。$scope.student.opl 不允许我将日期更改为日期对象。我似乎无法为其添加字段。过滤器不起作用。实际上,下面的日期正确显示了日期,但它抛出了大量错误并且更新值为空:

<input type="text" class="form-control" ng-model="opl.einddatum" value="{{opl.einddatum | date:'yyyy-MM-dd'}}" />

使用类似的方法

<input type="date" class="form-control" ng-model="makeDate(opl.startdatum) "  />

也不行。我查看了 angular-ui-bootstrap,但这里是一样的:你需要一个 Date 对象。

我可能在这里遗漏了一个关键的战略要点,但我希望能得到一些帮助来指出我的错误,谢谢,

一月

最佳答案

您可以通过以下格式将 ISO 字符串转换为日期对象,

var date=new Date('2015-11-13T06:16:11.399Z')

在你的情况下,它会像,

$scope.student.opl.startdatum = new Date($scope.student.opl.startdatum);

关于javascript - 使用 angularJS 和输入类型 ="date"更新 mongodb 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com