加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何将角度材料datepicker的ng-model字符串格式格

发布时间:2020-12-17 07:40:12 所属栏目:安全 来源:网络整理
导读:我有一个与集合中包含Date对象的数据库的mongoose连接.我想使用角度材料的DatePicker控件查看这些Date对象. Date对象遵循ISO字符串格式. 以下是代码段: md-datepicker ng-model="license.expirationdate" md-placeholder="Enter date"/md-datepicker 我收到
我有一个与集合中包含Date对象的数据库的mongoose连接.我想使用角度材料的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模式更改?

编辑: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);

});

小提琴:http://jsfiddle.net/masa671/jm6y12un/

更新:

使用ng重复:

标记:

<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)
        });
    }
});

小提琴:http://jsfiddle.net/masa671/bmqpyu8g/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读