pat*_*zek 3 javascript countdown angularjs
这是我的代码,但我找不到如何在几分钟内完成倒计时,我的意思是,而不是3000,30:00 ......任何帮助?
<script>
app.controller("Counter", function($scope,$timeout){
$scope.counter = 3000;
$scope.onTimeout = function(){
$scope.counter--;
mytimeout = $timeout($scope.onTimeout,1000);
}
var mytimeout = $timeout($scope.onTimeout,1000);
});
</script>
Run Code Online (Sandbox Code Playgroud)
您的控制器没问题,您只需要:
counter以避免转身:
if ($scope.counter > 0) $scope.counter--;现在显示秒数作为'mm:ss'转换计数器到日期.您可以使用过滤器(来自此答案)
app.filter('secondsToDateTime', [function() {
return function(seconds) {
return new Date(1970, 0, 1).setSeconds(seconds);
};
}])
Run Code Online (Sandbox Code Playgroud)
并显示它:
{{counter | secondsToDateTime | date:'mm:ss'}}
Run Code Online (Sandbox Code Playgroud)
看看它如何在小提琴或下面的片段中工作.
var myApp = angular.module('myApp', []);
function MyCtrl($scope, $timeout) {
$scope.counter = 1800;
$scope.onTimeout = function() {
if ($scope.counter > 0) $scope.counter--;
mytimeout = $timeout($scope.onTimeout, 1000);
}
var mytimeout = $timeout($scope.onTimeout, 1000);
}
myApp.filter('secondsToDateTime', [function() {
return function(seconds) {
return new Date(1970, 0, 1).setSeconds(seconds);
};
}])Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
{{counter | secondsToDateTime | date:'mm:ss'}}
</div>Run Code Online (Sandbox Code Playgroud)