gpt4 book ai didi

javascript - AngularJS 日期字符串与对象错误

转载 作者:行者123 更新时间:2023-11-30 14:54:23 25 4
gpt4 key购买 nike

我正在尝试检索一组用户信息(通过搜索名字),它返回名字和预订日期(来自 mongoDB, Mongoose 模式使用日期:日期)。名字是 type=text,预订日期是 type=date。它返回未定义的日期,错误消息是 Error: [ngModel:datefmt] Expected `2017-11-06T16:00:00.000Z to be a date。我阅读了其他问题/答案,这是因为 type=date 需要一个对象,但 JSON 正在返回一个字符串。

我真的是 Angular JS 的新手,我尝试了建议的方法但没有结果。我不知道缺少什么。感谢基于我的代码的任何特定指针

enter image description here

HTML

<form name="updateBookingsForm" ng-repeat="booking in ctrl.bookings" novalidate>
<input name="firstname" type="text" ng-model="booking.firstname" class="form-control" required>
<input name="date" type="date" ng-model="booking.date" class="form-control" required>
</form>

Controller

self.searchAllBookings = function () {
paAppAPI.searchAllBookings(self.term).then(function (result) {
console.log(result); //returns array and date undefined
self.bookings = result;
}

}).catch(function (err) {
console.log(err);
if (err.status == 404) {
self.message = "No bookings found";
self.showMessage = true;
}
});
}

服务

self.searchAllBookings = function (term) {
var defer = $q.defer();

$http.get("/api/booking?keyword=" + term).then(function (result) {
console.log(result); //returns array but date undefined
if (result.status == 200) {
defer.resolve(result.data);
}
else {
defer.resolve(null);
}

}).catch(function (err) {
console.log(err);
defer.reject(err);
});

return defer.promise;
}

服务器

app.get("/api/booking?", function (req, res) {

console.log("Search booking > " + req.query.keyword);
var keyword = req.query.keyword;

Booking.find({
"firstname" : new RegExp('^'+keyword+'$', "i")
}, (err, result) => {
if (err) {
console.log(err);
}
res.status(200).json(result);

console.log(result);
// { _id: 5a1a4e1238dfaa65e5fa59a2,
// firstname: 'Emily',
// date: 2017-11-20T16:00:00.000Z,
// __v: 0 },

console.log(result[0].date); //2017-11-06T16:00:00.000Z

});
});

最佳答案

我假设 self.bookings 是一个数组。如果需要在将字符串转换为日期之前循环它。

如果日期未定义,则分配当前日期。否则将字符串转换为日期。

.then(function (result) {
console.log(result); //returns array but date is undefined
self.bookings = result;
for(var i=0; i< self.bookings.length; i++){
self.bookings[i].date = new Date(self.bookings[i].date) : Date.now())
}


})

关于javascript - AngularJS 日期字符串与对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546720/

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