在KeystoneJS的pug视图中,我需要传递一个数组,其中包含从2个MongoDB日期字段到daterangepicker isInvalidDate
的日期范围
控制器中的查询是:
view.query('booked', Booking.model.find({}, 'startDate endDate'));
在玉视图= booked
中返回:
{ _id: 58f71314a20fc062ee02f4df, startDate: 2017-04-18T21:00:00.000Z,
endDate: 2017-04-19T21:00:00.000Z },{ _id: 58f8768c0741e2118b1efe43,
startDate: 2017-04-23T21:00:00.000Z, endDate: 2017-04-25T21:00:00.000Z },{...
在jade view js block中,这个片段:
var books =!{JSON.stringify(booked, ['startDate', 'endDate'])};
返回:
startDate: 2017-04-18T21:00:00.000Z
endDate: 2017-04-19T21:00:00.000Z
startDate: 2017-04-23T21:00:00.000Z
endDate: 2017-04-25T21:00:00.000Z
如何格式化startDate
和endDate
属性以获得结果:
["04/18/2017", "04/19/2017", "04/23/2017", "04/25/2017"]
(没有标签,只有日期值,逗号分隔)
答案 0 :(得分:1)
booked
作为Pug变量公开,而不是JavaScript变量。要将Pug变量(从您的数据库)传递给JavaScript,您必须在页面中嵌入变量的直接内容,然后将其作为JSON检索。
"isInvalidDate": function (date) {
var books = !{JSON.stringify(books)}; // Now an array of objects
// Your other code
},
由于日期在数据库中的格式化,其余代码需要更改,但books
现在将是您需要的对象数组。如果您想比较格式MM/DD/YYYY
的日期,endDate
中的startDate
和books
属性需要正确格式化以进行比较(或-1
将始终被退回)。