Angularjs显示从日期时间开始的时间部分

时间:2014-06-08 08:09:27

标签: javascript angularjs

我有以下输入显示日期时间

<div ng-repeat="item in items">
<input type="text" ng-model="item.name" />
<input ng-model="item.time" />
</div>

我遇到的问题是时间是以下格式。

"2002-11-28T14:00:00Z" 

我想只显示时间部分。我将不得不应用过滤器

date: 'hh:mm a'
I tried       
ng-model="labor.start_time | date: 'hh:mm a'"

如何仅在输入框中显示时间部分?我不能使用span标记作为用户可以更改的时间,因此必须在输入标记中显示。

2 个答案:

答案 0 :(得分:0)

您输入的任何内容都会覆盖

item.time。因此,当您仅将输入内容更改为时间值时,item.time也将仅包含时间部分。如果时间值发生变化,您需要一个额外的变量来保存时间部分并更新日期时间值。您可以使用$ watch来获取

$scope.$watch('item.time_portion', function(newValue, oldValue) {
    // update the hours and minutes of $scope.item.time here
});

答案 1 :(得分:0)

如上所述,高尔说,你可以使用观察者。

<div ng-controller="MyCtrl">
    <input ng-model="currentDate">
</div>

function MyCtrl($scope, $filter) {
    $scope.currentDate = new Date();

    $scope.$watch('currentDate', function(date){
        $scope.currentDate = $filter('date')(date, 'shortTime');
    });
}

这与您的示例有效JSFiddle