Angularjs$interval返回的fn不是函数
Angularjs $interval returns fn is not a function
我想检查$interval的cookie是否存在。我在页面加载时调用$interval。这个调用周期性地抛出一个错误:
> 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)
我真的不明白为什么。
这是我的代码:
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);
}
}]);
正在从$document.ready:调用代码
$document.ready(function () {
$scope.Repeat();
})
您添加了函数的结果,而不是函数本身。调用$scope.CheckLoginCookie()
将返回undefined
,但$interval
需要回调。
$interval($scope.CheckLoginCookie, 1000);
如果函数需要参数,就这样使用:
$interval(function() {
$scope.CheckLoginCookie(param1, param2);
}, 1000);
我使用了Str的答案,它对我有效。在我的控制器中,我想每5分钟刷新一次图表,我在最后添加了这个。首先,我调用refreshChart函数,以便在第一次加载或刷新页面时立即加载图表。然后我在控制器中最后调用$scope.Repeat函数。我的图表每5分钟刷新一次,耶!
$scope.Repeat = function () {
intervalPromise = $interval(function () {
$scope.refreshChart();
}, 300000);
}
$scope.refreshChart();
$scope.Repeat();
相关文章:
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 通过fn.apply或fn.bind将函数传递给setTimeout
- 函数 (){ 返回 fn.apply(me, arguments); } 作为回调
- 将函数绑定到baz后调用fn.apply(bar,[])
- 如何在其他函数中使用fn作为函数参数
- angularjs[ng:areq]参数'fn'不是函数,在控制台中获取字符串时出错
- 在异步内部函数返回 [UI-路由器和 HTML 服务] 之后返回外部 fn
- Javascript:全局变量转到“窗口”或“全局”,但全局函数不会.全球 FN 去哪儿了
- 扩展 $.fn.init 函数
- 未捕获的类型错误:fn 不是图表.js中的函数
- 车把自定义帮助程序错误:“options.fn 不是函数”
- D3 强制布局 Tick Fn - nodes.attr() 不是一个函数
- 为什么<车身负载=“;fn()">使用函数调用,但是window.onload=fn;使用处理程序函
- $routeProvider配置路由抛出'未捕获错误:[ng:areq]参数'fn'不是函数,得
- 在AngularJS中定义初始应用程序-Argument'fn'不是函数,获取字符串
- 传递给setTimeout的函数fn不是作为函数调用的,而是作为类似window.fn()的方法调用的
- 未捕获的类型错误:对象函数(e,t){return new b.fn.init(e,t,r)}没有方法'feat
- 当我想调用update()函数时,jQuery.fn.yiiGridView抛出未定义错误
- $.fn. yiigridview.getSelection函数不能立即工作
- JQuery函数fn()没有定义