我将变量绑定到time类型的输入字段,但显示的格式错误。
它会显示如下时间:08:54:30,088
我真正需要的是这样的格式:08:54
。
我尝试使用过滤器(value={{ datetime.date | date : 'HH:mm' }}
)设置输入字段的值,但我的编辑说我这样做的方式是错误的。有什么想法吗?
这里是compltete代码:
<input id="rep_time" class="form-control" type="time" ng-model="datetime.time" value={{ datetime.date | date : 'HH:mm' }}>
app.controller( 'newCtrl', function( $scope ) {
$scope.datetime = {
date: new Date(),
time: new Date()
};
} );
答案 0 :(得分:2)
我通过定义Date() - 对象来规避问题。它有效,但我不喜欢这种双重定义。
<input class="form-control" type="date" ng-model="datetime.date" placeholder="yyyy-MM-dd" min="2016-01-01" required />
<input class="form-control" type="time" ng-model="datetime.time">
$scope.datetime = {
date: new Date(),
time: ''
};
$scope.datetime.time = new Date(
$scope.datetime.date.getFullYear(),
$scope.datetime.date.getMonth() + 1,
$scope.datetime.date.getDate(),
$scope.datetime.date.getHours(),
$scope.datetime.date.getMinutes() );
想要使用来自 Jimbrooism 的$过滤器,我找到了一个更短的方法!
$scope.datetime = {
date: new Date(),
time: new Date( $filter( 'date' )( new Date(), 'yyyy-MM-dd HH:mm' ) )
};
答案 1 :(得分:1)
请看看这个
var app = angular.module("mainApp", []);
app.controller('mainCtrl', function($scope, $filter){
$scope.datetime = {
date: new Date(),
time: $filter('date')( new Date(), 'HH:mm')
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
<input id="rep_time" class="form-control" type="time" ng-model="datetime.time" >
</div>
&#13;
答案 2 :(得分:1)
试试这个:
if (!!Session.get(key)) {
...
}
答案 3 :(得分:0)
您是否需要将模型绑定到输入元素? 将过滤器应用于输入字段通常会生成警告或错误,因为过滤器是单向的,将现有值绑定到输入然后更改它们是双向绑定。
如果您不需要能够更改元素,请考虑将输入更改为其他内容,例如
<div ng-bind="datetime.date | date : 'HH:mm'"></div>
如果你必须使用输入,Jimbroosim的答案就可以了。