我的控制器中有一个这样的数据集
{
"schedule":[{"day":"Monday","start":"15:00:00"},{"day":"Tuesday","start":"16:30:00"}]
}
在我看来,我想使用输入[时间]
<div ng-repeat="day in obj.schedule">
<input type="time" min="00:00:00" max="23:59:00" placeholder="" ng-model="day.start"/>
</div>
它不起作用,因为它需要一个日期,而不是字符串。
如何在控制器内部将字符串转换为时间?
我试过
$scope.start = new Date(obj.start)
但不起作用
var app = angular.module('myApp', []);
app.controller('mainCtrl', function($scope) {
$scope.obj = {
"schedule": [{
"day": "Monday",
"start": "15:00:00"
}, {
"day": "Tuesday",
"start": "16:30:00"
}]
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="mainCtrl">
<div ng-repeat="day in obj.schedule">
<input type="time" min="00:00:00" max="23:59:00" placeholder="" ng-model="day.start" />
</div>
</div>
如果你的情况下有一个日期,也许可以试试
angular.module('app',[])
.controller('mainCtrl', function($scope){
var vm = this;
$scope.obj = {
"schedule": [{
"day": "Monday",
"start": "15:00:00"
}, {
"day": "Tuesday",
"start": "16:30:00"
}]
}
for(var i = 0; i < $scope.obj.schedule.length; i++) {
$scope.obj.schedule[i].start = stringToDate($scope.obj.schedule[i].start);
}
function stringToDate(stringDate) {
var date = new Date();
var splitDate = stringDate.split(':');
date.setHours(splitDate[0], splitDate[1], splitDate[2]);
return date.toLocaleTimeString();
}
})
<html ng-app="app">
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="mainCtrl as vm">
<div ng-repeat="day in obj.schedule">
<input type="time" min="00:00:00" max="23:59:00" placeholder="" ng-model="day.start"/>
</div>
</div>
</body>
</html>