繁体   English   中英

AngularJs:错误:[ng:areq]参数'fn'不是一个函数,未定义

[英]AngularJs: Error: [ng:areq] Argument 'fn' is not a function, got undefined

伙计们!

我正在处理另一个人的一些Angular代码,并且正在尝试找出问题。 我使用Bower更新了库(因为我需要一些新版本才能完成工作),并且主页上出现了Angular错误。 错误如下:“错误:[ng:areq]参数'fn'不是函数,未定义”。 我尝试调试它,但没有成功。 我在这里也读了很多,但是没有任何帮助。 根据我的了解,问题可能出在应用程序.config()或错误声明的控制器中,或者...谁知道:D

如果您想尝试帮助我,我将提供重要的代码(在我看来):

1)应用配置:

 'use strict'; var agencySeekApp = angular.module('agencySeekApp', ['ngResource', 'ngRoute', 'flang', 'ngCookies', 'agencySeekFilters']) .value('toastr', toastr) .config(function($routeProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }); var routeUserChecks = { adminRole: { authenticate: function(auth) { return auth.isAuthorizedForRole('admin'); } }, authenticated: { authenticate: function(auth) { return auth.isAuthenticated(); } } }; $routeProvider .when('/', { templateUrl: '/app/views/home.html', controller: 'HomePageCtrl' }) .when('/category/:categoryId/choose-network/', { templateUrl: '/app/views/network_pick.html', controller: 'ChooseNetworkCtrl' }) .when('/category/:categoryId/network/:networkId', { templateUrl: '/app/views/schools_pick.html', controller: 'SchoolPageCtrl' }) .when('/agencies/:categoryId/:schoolId', { templateUrl: '/app/views/agency.html', controller: 'AgencyPageCtrl' }) .when('/show/agency/:agencyId', { templateUrl: '/app/views/agency_show.html', controller: 'ShowAgencyCtrl' }) .when('/show/school/:schoolId', { templateUrl: '/app/views/school_show.html', controller: 'ShowSchoolCtrl' }) .when('/case/open', { templateUrl: '/app/views/open_case.html', controller: 'OpenCaseCtrl' }) .when('/case/show/:case_id', { templateUrl: '/app/views/show_case.html', controller: 'ShowCaseCtrl' }) .when('/account/retrivePassword', { templateUrl: '/app/views/account.html', controller: 'AccountPageCtrl' }) .when('/search/:search_params',{ templateUrl: '/app/views/search_page.html', controller: 'SearchPageCtrl' }).when('/postcode-agencies/category/:categoryId/postcode-id/:postCodeId',{ templateUrl: '/app/views/post_code_agencies.html', controller: 'PostCodeAgenciesCtrl' }) /*for delete*/ .when('/sysadmin/network',{ templateUrl: '/app/views/sys_admin_network.html', controller: 'SysAdminNetworkCtrl' }) .when('/sysadmin/categories',{ templateUrl: '/app/views/sys_admin_categories.html', controller: 'SysAdminCategoriesCtrl' }) .when('/sysadmin/list',{ templateUrl: '/app/views/sys_admin_list.html', controller: 'SysAdminListCtrl' }) .when('/sysadmin/users',{ templateUrl: '/app/views/sys_admin_users.html', controller: 'SysAdminUsersCtrl' }) /*end*/ /*account*/ .when('/account/cases',{ templateUrl: '/app/views/account_cases.html', controller: 'AccountCasesCtrl' }) .when('/account/teachers',{ templateUrl: '/app/views/account_teachers.html', controller: 'AccountTeachersCtrl' }) .when('/account/schools',{ templateUrl: '/app/views/account_schools.html', controller: 'AccountSchoolsCtrl' }) .when('/account/agencies',{ templateUrl: '/app/views/account_agencies.html', controller: 'AccountAgenciesCtrl' }) .when('/account/case_workers',{ templateUrl: '/app/views/account_councilors.html', controller: 'AccountCouncilorsCtrl' }) .when('/account/linking',{ templateUrl: '/app/views/account_linking.html', controller: 'AccountLinkingCtrl' }) .when('/account/handshaking',{ templateUrl: '/app/views/account_handshaking.html', controller: 'AccountHandshakingCtrl' }) .when('/account/myprofile',{ templateUrl: '/app/views/my_profile.html', controller: 'AccountProfileCtrl' }) .when('/account/report',{ templateUrl: '/app/views/account_report.html', controller: 'AccountReportCtrl' }) .when('/account/admin-settings', { templateUrl: '/app/views/account_admin_settings.html', controller: 'AccountAdminSettingsCtrl' }) /*end*/ .otherwise({ templateUrl: '/app/views/home.html', controller: 'in_Otherwise' }); }); 

2)主页控制器:

 angular.module('agencySeekApp') .controller('HomePageCtrl',['$scope','identity','$http','selectedSchoolCookieService',function($scope,identity,$http,selectedSchoolCookieService){ //$scope.test = 'some test'; $scope.identity = identity; $http.get('/api/v1/agency/categories') .success(function(res){ console.log("res : ",res); $scope.arr = res.data; }) .error(); var url = ''; var schoolIdCookie = selectedSchoolCookieService.getCookie('schoolId'); $scope.urlForTheUser = function (someId) { if(identity.currentUser && identity.currentUser.isFromSchool() ){ url = '/agencies/'+someId+'/'+identity.currentUser.school_id+'/'; }else { if(schoolIdCookie) { url = '/agencies/' + someId + '/' + schoolIdCookie; }else { url = '/category/'+someId+'/choose-network/'; } } return url; }; 

3)我index.html中的脚本部分,包括所有脚本(用于包含顺序参考):

 <script type="text/javascript" src="/lib/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="/lib/charts/jquery.flot.js"></script> <script type="text/javascript" src="/lib/charts/jquery.flot.pie.js"></script> <script type="text/javascript" src="/lib/charts/jquery.flot.spline.js"></script> <script type="text/javascript" src="/lib/jRate-master/dist/jRate.min.js"></script> <script type="text/javascript" src="/lib/angular/angular.js"></script> <script type="text/javascript" src="/lib/bootstrap/dist/js/bootstrap.min.js"></script> <script type="text/javascript" src="/lib/toastr/toastr.js"></script> <script type="text/javascript" src="/lib/angular-resource/angular-resource.min.js"></script> <script type="text/javascript" src="/lib/angular-route/angular-route.js"></script> <script type="text/javascript" src="/lib/angular-cookies/angular-cookies.js"></script> <script type="text/javascript" src="/lib/angular-sanitize/angular-sanitize.min.js"></script> <script type="text/javascript" src="/app/flangCharts.js"></script> <script type="text/javascript" src="/app/app.js"></script> <script type="text/javascript" src="/app/custom.js"></script> <script type="text/javascript" src="/app/account/auth.js"></script> <script type="text/javascript" src="/app/account/identity.js"></script> <script type="text/javascript" src="/app/account/LoginController.js"></script> <script type="text/javascript" src="/app/account/usersResource.js"></script> <script type="text/javascript" src="/app/services/selectedAgencies.js"></script> <script type="text/javascript" src="/app/services/pageService.js"></script> <script type="text/javascript" src="/app/services/selectedSchoolCookieService.js"></script> <script type="text/javascript" src="/app/services/lastPageCategorySelected.js"></script> <script type="text/javascript" src="/app/directives/fileUploadDirective.js"></script> <script type="text/javascript" src="/app/directives/popUpAgencyDirective.js"></script> <script type="text/javascript" src="/app/directives/popUpLinkingDirective.js"></script> <script type="text/javascript" src="/app/directives/reportDirectives.js"></script> <script type="text/javascript" src="/app/filters.js"></script> <script type="text/javascript" src="/app/controllers/HomePageCtrl.js"></script> <script type="text/javascript" src="/app/controllers/ChooseNetworkCtrl.js"></script> <script type="text/javascript" src="/app/controllers/ShowAgencyCtrl.js"></script> <script type="text/javascript" src="/app/controllers/SchoolPageCtrl.js"></script> <script type="text/javascript" src="/app/controllers/AgencyPageCtrl.js"></script> <script type="text/javascript" src="/app/controllers/ShowAgencyCtrl.js"></script> <script type="text/javascript" src="/app/controllers/OpenCaseCtrl.js"></script> <script type="text/javascript" src="/app/controllers/SearchPageCtrl.js"></script> <script type="text/javascript" src="/app/controllers/ShowCaseCtrl.js"></script> <script type="text/javascript" src="/app/controllers/ShowSchoolCtrl.js"></script> <script type="text/javascript" src="/app/controllers/LeftSideBarCtrl.js"></script> <script type="text/javascript" src="/app/controllers/PostCodeAgenciesCtrl.js"></script> <script type="text/javascript" src="/app/controllers/AccountAdminSettingsCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/SysAdminNetworkCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/SysAdminListCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/SysAdminUsersCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/SysAdminCategoriesCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountCasesCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountTeachersCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountSchoolsCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountAgenciesCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountCouncilorsCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountLinkingCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountMenuCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountHandshakingCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountProfileCtrl.js"></script> <script type="text/javascript" src="/app/account/user_page_ctrl/AccountReportCtrl.js"></script> 

希望足够了!

最好的问候,H.

我发现了问题。 当调用$ http时,我应该将.success()回调和.error()链接起来。 问题是.error()需要一个函数参数,而我什么也没提供。 固定的是:

 .error(function(data, status, headers, config){
    console.log(data, status, headers, config);
  });

就是这样:)

感谢您提供的断点提示。 我不敢相信我没有那样做,只是跑到StackOverflow哭:D

无论如何,它已经完成。 感谢@bilpor为我提供帮助!

这很难说。 您是否尝试过执行代码尝试缩小不喜欢的行。 您应该能够使用Chrome浏览器工具并设置断点等。我假设从您的第一段代码中

'ngResource','ngRoute','flang','ngCookies','agencySeekFilters'

存在

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM