0

在 KeystoneJS pug 视图中,我需要将一个包含 2 个 MongoDB 日期字段的日期范围的数组传递给 daterangepickerisInvalidDate

控制器中的查询是:

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 },{...

在玉视图 js 块中,这个片段:

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

如何格式化startDateendDate属性以获得结果:

["04/18/2017", "04/19/2017", "04/23/2017", "04/25/2017"]

(没有标签,只有日期值,逗号分隔)

4

1 回答 1

1

booked公开为 Pug 变量,而不是 JavaScript 变量。要将 Pug 变量(从您的数据库)传递给 JavaScript,您必须将变量的直接内容嵌入到您的页面中,然后将其作为 JSON 检索。

"isInvalidDate": function (date) {
    var books = !{JSON.stringify(books)}; // Now an array of objects
    // Your other code
},

密码笔

由于日期在数据库中的格式设置,您的其余代码将需要更改,但books现在将是您需要的对象数组。如果要比较 format 的日期,则需要正确格式化inMM/DD/YYYYendDateandstartDate属性以进行比较(或始终返回)。books-1

于 2017-04-20T22:56:22.197 回答