【发布时间】:2015-06-03 08:33:59
【问题描述】:
我确定我犯了一个错误,但我找不到它。 html:
<html ng-app="countdown">
<body>
<div class="container" ng-controller="cc">
{{status}}<br>
<countdown duration="3" timeoutCallback="cbck"></countdown>
</div>
</body>
</html>
这是javascript代码:
var app = angular.module("countdown",[]);
app.controller('cc', function ($scope){
$scope.status = 'countdown started ';
$scope.cbck = function () {
$scope.status = 'countdown finished';
}
});
app.directive('countdown', ['$interval', function ($interval) {
return {
scope: {
timer: '=duration',
callback: '&timeoutCallback'
},
restrict: 'E',
template: '<span>{{minutes}}:{{seconds}}</span>',
link: function (scope, element, attrs){
scope.ipromise = $interval(function() {
var minutes, seconds;
minutes = parseInt(scope.timer / 60, 10)
seconds = parseInt(scope.timer % 60, 10);
scope.minutes = minutes < 10 ? "0" + minutes : minutes;
scope.seconds = seconds < 10 ? "0" + seconds : seconds;
if(scope.timer > 0){
scope.timer--;
}else{
scope.callback();
$interval.cancel(scope.ipromise);
}
}, 1000);
}
};
}]);
我找不到我做错了什么,我开发了另一个带有回调的指令并且效果很好。
【问题讨论】:
标签: angularjs angularjs-directive callback