【发布时间】:2016-03-20 08:33:33
【问题描述】:
我有一个 mongoose 连接到包含集合中 Date 对象的数据库。我想使用 Angular Material 的 DatePicker 控件查看这些 Date 对象。 Date 对象遵循 ISO 字符串格式。
这是一个代码sn-p:
<md-datepicker
ng-model="license.expirationdate" md-placeholder="Enter date">
</md-datepicker>
我收到以下错误:
md-datepicker 的 ng-model 必须是 Date 实例。
在研究时,我发现您可以使用过滤器创建 Date 实例,但这对我不起作用 -> 我收到一条错误消息,指出使用简单过滤器时模型值不可分配。过滤器只是根据字符串输入返回一个新的 Date 对象。
如何将字符串格式化为 Date 对象,同时仍允许 ng-model 更改?
编辑:猫鼬的架构 var Schema = mongoose.Schema;
var Schema = mongoose.Schema;
var modelschema = new Schema({
name : String,
licensetype : String,
activationcount : Number,
expirationdate: Date,
key : String
})
这是填充模式的快速路由
app.post('/licenses', function (req, res) {
console.log(req.body.expirationDate);
License.create({
name: req.body.licenseName,
licensetype: req.body.licenseType,
activationcount: 0,
expirationdate: req.body.expirationDate,
key: "123456"
}, function (err, license) {
if (err) {
res.send(err);
console.log(err);
}
//Send user back to main page
res.writeHead(301, {
'Location': '/',
'Content-Type': 'text/plain'
});
res.end();
}
)
});
【问题讨论】:
-
license.expirationdate长什么样子? -
使用相同的 DatePicker 控件设置并给出以下结果:2015-12-15T23:00:00.000Z
-
好的,您能在
license.expirationdate或者只是licsense的位置显示代码吗?您希望模型以何种方式更改 - 例如新日期将进入并且您希望它重新填充日期选择器?您要更改日期并将其发送回去还是什么? -
expirationdate 是通过简单地将 DatePicker 的输出发送到 mongoose 模式来填充的,expirationdate 类型为 Date。我希望 DatePicker 能够正确查看存储在数据库中的日期,并且当我更改 DatePicker 上的日期时,我想使用 ng-changed 事件来更新数据库。
标签: angularjs date mongoose angular-material