Je sais que vous allez probablement marquer cela comme un double, mais aucun des sujets frères et soeurs ne résout pas mon problème, c'est donc ma quantième simple décompter directive:
class Clock {
constructor() {
this.restrict = 'AC';
this.replace = true;
this.template = require('./templates/clock.tpl.html');
this.scope = {};
}
link(scope, elem, attrs, $interval) {
let end = new Date('05/05/2017 9:00 AM');
let _second = 1000;
let _minute = _second * 60;
let _hour = _minute * 60;
let _day = _hour * 24;
scope.showRemaining =() => {
let now = new Date();
let distance = end - now;
let days = Math.floor(distance/_day);
let hours = Math.floor((distance % _day)/_hour);
let minutes = Math.floor((distance % _hour)/_minute);
let seconds = Math.floor((distance % _minute)/_second);
scope.days = days;
scope.hours = hours;
scope.minutes = minutes;
scope.seconds = seconds;
}
$interval(showRemaining, 1000;)
}
}
// create factory function to handle DI
function factory() {
"ngInject";
return new Clock();
}
export default factory;
J'ai cherché la cause de ce problème et partout j'atteins info que la fonction d'intervalle doit être passée comme une normale sans paramètres ou d'autres addons. Mais j'ai encore la même erreur, ce qui est:
TypeError: $interval is not a function
Quelqu'un peut-il aider?
Injecter via le contrôleur, pas la fonction de lien –