作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个到包含集合中 Date 对象的数据库的 mongoose 连接。我想使用 Angular Material 的 DatePicker
控件查看这些 Date 对象。 Date 对象遵循 ISO 字符串格式。
这是一个代码片段:
<md-datepicker
ng-model="license.expirationdate" md-placeholder="Enter date">
</md-datepicker>
我收到以下错误:
md-datepicker
的 ng-model
必须是 Date 实例。
在研究时,我发现您可以使用过滤器来创建 Date 实例,但这对我来说不起作用 -> 我收到一条错误消息,指出使用简单过滤器时模型值不可分配。过滤器只是根据字符串输入返回一个新的 Date 对象。
如何将字符串格式化为 Date 对象,同时仍允许 ng-model
更改?
编辑: Mongoose 的架构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();
}
)
});
最佳答案
这是一个例子:
标记:
<div ng-controller="MyCtrl">
<md-datepicker ng-model="dt" md-placeholder="Enter date" ng-change="license.expirationdate = dt.toISOString()">
</md-datepicker>
{{license.expirationdate}}
</div>
JavaScript:
app.controller('MyCtrl', function($scope) {
$scope.license = {
expirationdate: '2015-12-15T23:00:00.000Z'
};
$scope.dt = new Date($scope.license.expirationdate);
});
fiddle :http://jsfiddle.net/masa671/jm6y12un/
更新:
使用ng-repeat
:
标记:
<div ng-controller="MyCtrl">
<div ng-repeat="d in data">
<md-datepicker
ng-model="dataMod[$index].dt"
md-placeholder="Enter date"
ng-change="d.license.expirationdate = dataMod[$index].dt.toISOString()">
</md-datepicker>
{{d.license.expirationdate}}
</div>
</div>
JavaScript:
app.controller('MyCtrl', function($scope) {
var i;
$scope.data = [
{ license:
{ expirationdate: '2015-12-15T23:00:00.000Z' }
},
{ license:
{ expirationdate: '2015-12-20T23:00:00.000Z' }
},
{ license:
{ expirationdate: '2015-12-25T23:00:00.000Z' }
}
];
$scope.dataMod = [];
for (i = 0; i < $scope.data.length; i += 1) {
$scope.dataMod.push({
dt: new Date($scope.data[i].license.expirationdate)
});
}
});
关于angularjs - 如何将 ng-model 字符串格式化为 Angular Material 日期选择器的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274197/
我是一名优秀的程序员,十分优秀!