2017-03-13 148 views
0

有沒有什麼辦法讓Angular從日期/時間輸入中獲取字符串?目前,我有這樣的輸入,例如:AngularJS - 解析ng-model到日期/時間

<input class="admin-input" type="time" ng-model="newEvent.endHour"/> 

我想顯示爲HH模型值:毫米,但是,當我打印它的價值,它顯示完整的日期加上全職工作。無論如何只要將輸入中顯示的字符串(HH:mm格式)顯示到ng模型中?

在此先感謝。

+0

的[如何格式化輸入的\值[時間\]當結合到日期()-object]可能的複製(http://stackoverflow.com/questions/36976716/how-to-format -time-value-of-input-when-bound-to-date-object) –

+0

試過了,仍然沒有工作。似乎我將不得不在控制器中解析它,因爲它還顯示比輸入 – Xabi

回答

1

可以使用角度date過濾器,

<input class="admin-input" type="time" ng-model="newEvent.endHour | date:'HH:mm'"/> 

編輯 如果你想將其綁定到一個模型,然後添加監視並過濾它的控制器內,

DEMO

var app = angular.module('App', []); 
 
app.controller('myctrl', function($scope,$filter) { 
 
    $scope.endHour = new Date(); 
 
    $scope.$watch('endHour', function(newValue) { 
 
    $scope.endHour = $filter('date')(newValue, 'HH:mm'); 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html ng-app="App"> 
 

 
<head> 
 
    <script data-require="[email protected]*" data-semver="1.2.14" src="//code.angularjs.org/1.2.14/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<div ng-app="App" ng-controller="myctrl"> 
 
    <input type="datetime" ng-model="endHour" class="form-control" /> 
 
</div> 
 
</body> 
 

 
</html>

+0

中顯示的時間少1天和1小時看起來你不能爲ng模型指定過濾器,它不起作用 – Xabi

+0

我建議你在控制器上執行它,除非你在表達式中顯示它 – Sajeetharan

+0

檢查更新的演示 – Sajeetharan