Цитата:
|
kingstakh,
лучше бы вы сразу в той теме написали :) думаю и тут заметят. |
Цитата:
|
kingstakh,
ок. |
Цитата:
Хорошая новость, что в приложении обновление данных работает, то есть идет обратный отсчет времени. Плохая, данные JSON у меня не разделяются кавычками. То есть в примере: $scope.json = '["12:00", "12:10", "12:35", "23:37"]'; А у меня: $scope.json = '["12:00, 12:10, 12:35, 23:37"]'; Где исправить код, чтобы работало с моей строкой? :blink: Решено, додумался, спасибо! |
Может кому-то понадобиться, мой вариант
<!DOCTYPE html> <html ng-app="app"> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <meta charset="utf-8"> <title>Расписание</title> <script> var c = { formatTime: function(b) { b = Math.floor(b / 1E3); var a = Math.floor(b / 60), d = Math.floor(a / 60); b %= 60; a %= 60; return c.two(d % 24) + " час. " + c.two(a) + " мин. " + c.two(b) + " сек. " }, two: function(b) { return (9 < b ? "" : "0") + b } }; angular.module("app", []) //Часы .controller("TimeCtrl", function($scope, $interval) { var tick = function() { $scope.clock = Date.now(); } tick(); $interval(tick, 1000); }) .controller("TabsDemoCtrl", function($scope) { $scope.json = '6:00, 8:45, 12:00, 12:10, 12:35, 23:37'; // Парсинг в другом контроллере, поэтому данные имеют такой вид $scope.arrString = new Array(); $scope.arrString = $scope.json.split(','); $scope.myArray = []; $scope.fn = function () { $scope.myArray = []; angular.forEach($scope.arrString, function(el) { el = el.match(/\d+/g); var date = new Date; date.setHours(+el[0], +el[1],0,0); date = date.getTime() - (new Date).getTime(); $scope.myArray.push(date < 0 ? "Автобус ушел" : "Осталось : " + c.formatTime(date)); }) console.log($scope.myArray) window.setTimeout($scope.fn,1000) // Вывод данных в приложении работает } $scope.fn() }); </script> </head> <body> <h3 ng-controller="TimeCtrl">Сейчас {{ clock | date:'HH:mm:ss'}}</h3> <ul ng-controller="TabsDemoCtrl"> <li ng-repeat="bustime in arrString track by $index"> {{bustime + ' ' +myArray[$index]}} </li> </ul> </body> </html> |
kingstakh,
хотелось бы увидеть обновление времени или узнать почему в посте 20 не работает вывод времени. |
Цитата:
А нет, jQuery не играет роли, у меня еще контроллер текущего времени есть, с ним и здесь все заработало |
Рабочий вариант с $interval
<!DOCTYPE html> <html ng-app="app"> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <meta charset="utf-8"> <title>Расписание</title> <script> var c = { formatTime: function(b) { b = Math.floor(b / 1E3); var a = Math.floor(b / 60), d = Math.floor(a / 60); b %= 60; a %= 60; return c.two(d % 24) + " час. " + c.two(a) + " мин. " + c.two(b) + " сек. " }, two: function(b) { return (9 < b ? "" : "0") + b } }; angular.module("app", []) .controller("TabsDemoCtrl", function($scope, $interval) { $scope.json = '6:00, 8:45, 12:00, 12:10, 12:35, 23:37'; // Парсинг в другом контроллере, поэтому данные имеют такой вид $scope.arrString = new Array(); $scope.arrString = $scope.json.split(','); $scope.myArray = []; var tick = function() { $scope.clock = Date.now(); } tick(); $interval(tick, 1000); $scope.fn = function () { $scope.myArray = []; angular.forEach($scope.arrString, function(el) { el = el.match(/\d+/g); var date = new Date; date.setHours(+el[0], +el[1],0,0); date = date.getTime() - (new Date).getTime(); $scope.myArray.push(date < 0 ? "Автобус ушел" : "Осталось : " + c.formatTime(date)); }) console.log($scope.myArray) window.setTimeout($scope.fn,1000) // Вывод данных в приложении работает } $scope.fn() }); </script> </head> <body> <ul ng-controller="TabsDemoCtrl"> <li ng-repeat="bustime in arrString track by $index"> {{bustime + ' ' +myArray[$index]}} </li> </ul> </body> </html> |
Цитата:
<!DOCTYPE html> <html ng-app="app"> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <meta charset="utf-8"> <title>Расписание</title> <script> var c = { formatTime: function(b) { b = Math.floor(b / 1E3); var a = Math.floor(b / 60), d = Math.floor(a / 60); b %= 60; a %= 60; return c.two(d % 24) + " час. " + c.two(a) + " мин. " + c.two(b) + " сек. " }, two: function(b) { return (9 < b ? "" : "0") + b } }; angular.module("app", []) //Часы .controller("TimeCtrl", function($scope, $interval) { var tick = function() { $scope.clock = Date.now(); } tick(); $interval(tick, 1000); }) .controller("TabsDemoCtrl", function($scope) { $scope.work = '6:00, 8:45, 12:00, 12:10, 12:35, 23:37'; // Рабочие дни $scope.weekend = '6:00, 8:45, 12:00, 12:10, 12:35, 23:37'; // Выходные дни $scope.arrString = new Array(); $scope.arrString = $scope.work.split(','); $scope.myArray = []; $scope.fn = function () { $scope.myArray = []; angular.forEach($scope.arrString, function(el) { el = el.match(/\d+/g); var date = new Date; date.setHours(+el[0], +el[1],0,0); date = date.getTime() - (new Date).getTime(); $scope.myArray.push(date < 0 ? "Автобус ушел" : "Осталось : " + c.formatTime(date)); }) console.log($scope.myArray) window.setTimeout($scope.fn,1000) // Вывод данных в приложении работает } $scope.fn() }); </script> </head> <body> <h3 ng-controller="TimeCtrl">Сейчас {{ clock | date:'HH:mm:ss'}}</h3> <ul ng-controller="TabsDemoCtrl"> <li ng-repeat="bustime in arrString track by $index"> {{bustime + ' ' +myArray[$index]}} </li> </ul> <ul ng-controller="TabsDemoCtrl"> Здесь для выходных дней <li ng-repeat="bustime in arrString track by $index"> {{bustime + ' ' +myArray[$index]}} </li> </ul> </body> </html> |
Часовой пояс GMT +3, время: 09:37. |