角度模型应该是文本,但输入类型应该是时间

时间:2015-08-21 09:36:13

标签: javascript angularjs time getter-setter

我有一个时间值为text的模型,如10:00:00,这意味着10:00 AM。现在我需要能够让用户更改这些值,但它不应该只是input type="text",因为很难在IOS上更改user这样的时间。使用type="time"不起作用,因为那时模型需要是一个日期对象。

任何想法如何让用户友好并保持我的愚蠢模型格式?

1 个答案:

答案 0 :(得分:0)

这是正确的提示,非常感谢你。 这是其他人的解决方案..

mainModule.directive('stupidTimeConverter', function() {

var directive = {};
directive.restrict = 'A';
directive.require = 'ngModel';

directive.link = function(scope, element, attrs, ngModel) {

    // Formatters change how model values will appear in the view
    ngModel.$formatters.push(function(value) {
        return moment(value, "HH:mm:ss").toDate();
    });

    // Parsers change how view values will be saved in the model
    ngModel.$parsers.push(function(value) {
        return moment(value).format("HH:mm:ss");
    });

};
return directive;
});