angularjs – Angular $timeout – TypeError:object不是函数
发布时间:2020-12-17 06:55:29 所属栏目:安全 来源:网络整理
导读:我写了一个指令和一个服务.该指令在服务中调用超时函数.但是,一旦达到$timeout,就会抛出一个错误: TypeError: object is not a function 原始$scope.msg不会显示.并且$timeout函数不等待(20秒)调用回调(或者我假设,因为$scope.msg立即改变). 我完全迷失了.
我写了一个指令和一个服务.该指令在服务中调用超时函数.但是,一旦达到$timeout,就会抛出一个错误:
TypeError: object is not a function 原始$scope.msg不会显示.并且$timeout函数不等待(20秒)调用回调(或者我假设,因为$scope.msg立即改变). 我完全迷失了.我发现了一些关于超时的问题,但他们似乎都没有这个问题.这个和我一样接近,我已经按照Angularjs directive TypeError: object is not a function的答案了. 这是代码的Plunker: 这是实际的代码. angular.module('myApp',[ 'ui.bootstrap','myApp.services','myApp.directives',]); angular.module('myApp.directives',[]). directive('logoutNotification',[ function(admin) { return { restrict: "E",template: "<div>{{msg}}</div>",controller: ["$scope","$timeout","admin",function($scope,$timeout,admin) { $scope.msg = "Hey,no timeout yet"; $scope.resetNotification = function() { admin.resetNoticeTimer(function(){ $scope.msg = "Hey,I'm back from timeout" }); }; } ],link: function(scope) { scope.resetNotification(); } }; } ]); angular.module('myApp.services',[]). factory('admin',['$rootScope','$location','$timeout',function($rootScope,$location,admin) { var noticeTimer; return { resetNoticeTimer: function(cb) { if (noticeTimer) { $timeout.cancel(noticeTimer); } noticeTimer = $timeout(cb(),20000); } }; } ]); 提前致谢! 解决方法
你错误地依赖了依赖项.
你的代码: factory('admin',admin) { 应该: factory('admin',$location) { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |