Ich weiß, dass Sie wahrscheinlich dies als Duplikat, aber keiner von Geschwister Themen markieren werden nicht mein Problem nicht lösen, so ist dies meine einfaches Datum Countdown-Richtlinie:
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;
Ich habe die Ursache dieses Problems suchen und überall erreiche ich, dass die Intervallfunktion als eine normale ohne Parameter oder andere Addons übergeben werden muss. Aber noch habe ich den gleichen Fehler, die lautet:
TypeError: $interval is not a function
Kann jemand helfen?
Injizieren Sie es über die Steuerung, nicht die Link-Funktion –