在控制器中为时间输入angularjs创建掩码

时间:2018-07-27 15:36:42

标签: javascript angularjs mask angularjs-filter

我在angularjs控制器中有如下代码。

    $scope.detailConfig = [{
         title: $filter('translate')('bundle.app.HORA_MINUTO_INICIAL_DESCONSIDERAR'),
         property: 'faixaHorariaInicial',
         type: 'text'
     },{
         title: $filter('translate')('bundle.app.HORA_MINUTO_FINAL_DESCONSIDERAR'),
         property: 'faixaHorariaFinal',
         type: 'text'
     }];

从这段代码中,我呈现了这两个输入字段。我需要为这两个输入添加时间掩码,以便用户只能以以下格式输入时间:hh:mm。

请问我该怎么做?

1 个答案:

答案 0 :(得分:0)

当您说有输入但没有标签时,很难知道您正在使用什么。但是在JavaScript中,如果有Date对象,则可以使用以下函数返回字符串:“ hh:mm”(根据您的要求)。

var myDate = new Date();

function getTime(d) {
    hours = d.getHours();
    minutes = d.getMinutes();
    //seconds = d.getSeconds();
    //return hours + ":" + minutes + ":" + seconds;
  return hours + ":" + minutes;
};

var myTime = getTime(myDate);
// returns "10:59"

否则,如果您确实使用的是html Input ,那么我建议您使用一种解决方案here。这将限制输入以匹配您在控制器的$ filter中放置的任何值。就您而言,您可以这样写:

$scope.tToDisplay = $filter('date')($scope.timestamp, 'HH:mm');

<input ng-model="tToDisplay"></input>