我敢肯定我犯了一個錯誤,但我找不到它。 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);
}
};
}]);
我無法找到我做錯了,我開發了回調的另一個指令和那些工作。
下面的代碼:http://codepen.io/madridserginho/pen/JdWNEK
良好的漁獲,我沒有注意到,'&',這給不需要的複雜性在調用函數綁定這種方式。 – rzelek