I want to check if cookie exists with $interval. I am calling $interval on page load. This call periodically throws an error:
> TypeError: fn is not a function
> at callback (angular.js:12516)
> at Scope.$eval (angular.js:17444)
> at Scope.$digest (angular.js:17257)
> at Scope.$apply (angular.js:17552)
> at tick (angular.js:12506)
I really don't understand why.
Here is my code:
angular.module("appModule")
.controller("loginController", ["$scope", "$http", "$window", "$document", "$interval", "$cookies",
function ($scope, $http, $window, $document, $interval, $cookies) {
var stopInterval;
$scope.CheckLoginCookie = function () {
if ($cookies.get("Login") != null) {
if (angular.isDefined(stopInterval)) {
$interval.cancel(stopInterval);
stopInterval = undefined;
}
$window.location.href = $scope.UrlNotes;
}
}
$scope.Repeat = function ()
{
stopInterval = $interval($scope.CheckLoginCookie(), 1000);
}
}]);
Code is being called from $document.ready:
$document.ready(function () {
$scope.Repeat();
})
You added the result of the function instead of the function itself. Calling $scope.CheckLoginCookie()
will return undefined
, but $interval
expects a callback instead.
$interval($scope.CheckLoginCookie, 1000);
If the function requires parameters, just use it like this:
$interval(function() {
$scope.CheckLoginCookie(param1, param2);
}, 1000);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With