angularjs - Angular 出现错误:$injector:unpr 未知提供者
问题描述
在下面的屏幕截图中,我正在处理一个名为 ICD Group 的选项卡。我已经创建了它的服务、控制器和 html,但是当我单击 ICD 组选项卡时,我得到以下错误。下面的屏幕是一个 html,其中我们有 4 次 ng-click:
Error: $injector:unpr
Unknown Provider
Unknown provider: $uibModalProvider <- $uibModal <- rpmICDGroupController
angular.js:13642 Error: [$injector:unpr] http://errors.angularjs.org/1.5.6/$injector/unpr?p0=%24uibModalProvider%20%3C-%20%24uibModal%20%3C-%20rpmICDGroupController
at http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:6:412
at http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:43:84
at Object.d [as get] (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:40:344)
at http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:43:146
at d (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:40:344)
at e (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:41:78)
at Object.invoke (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:41:163)
at P.instance (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:89:399)
at n (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:65:10)
at g (http://www.agemr.com:9100/mobiledoc/jsp/webemr/js/angularjs/angular.min.js:58:429) <div ng-include="rpmicdGroupTab" class="ng-scope">
rpmAdminIcdGroupService.js
angular.module('rpm.rpmIcdGroupService',[]).factory('rpmIcdGroupService', function($http) {
// My service code goes here
}
rpmAdminIcdGroupController.js
var rpmAdminDependancies = ['oc.lazyLoad', 'rpm.rpmIcdGroupService','ecw.pagination','ecw.dir.scrollpane'];
var rpmAdminModule = angular.module('rpmAdminICDGroup', rpmAdminDependancies);
rpmAdminModule.controller('rpmICDGroupController',['$scope', '$ocLazyLoad', '$uibModal', 'rpmIcdGroupService',
function($scope, $ocLazyLoad, $uibModal, rpmIcdGroupService) {
//My controller code goes here
}]);
rpmIcdGroup.html:
<html>
<body>
<div class="orangetheme" ng-controller="rpmICDGroupController">
// html code for icd group goes here
</body>
</html>
rpmAdminDashboard.html:请注意 loadICDGroup() 调用 rpmAdminDashboardController
<div class="orangetheme" ng-app="rpmApp" ng-controller="rpmController" ng-init = "rpmAdminInit()" style="background-color: white;height: 700px;width: 100%">
<!-- other code -->
<ul class="nav">
<li ng-click="deviceTypeMethodName"><a href="#device-settings-tab" data-toggle="tab">Device Type Settings</a></li>
<li ng-click="loadICDGroup()"><a href="#icd-group-tab" data-toggle="tab">ICD Group</a></li>
<li ng-click="loadRpmInsurances()"><a href="#insurances-tab" data-toggle="tab">Insurances</a></li>
<li ng-click="generalSettingsMethodName"><a href="#general-settings-tab" data-toggle="tab">General Settings</a></li>
</ul>
rpmAdminDashBoardController.js
var rpmAdminDependancies = ['oc.lazyLoad', 'rpm.rpmInsuranceService', 'rpm.rpmIcdGroupService'];
var rpmAdminModule = angular.module('rpmApp', rpmAdminDependancies);
rpmAdminModule.controller('rpmController',['$scope','$ocLazyLoad','rpmInsuranceService', 'rpmIcdGroupService','$rootScope',
function($scope , $ocLazyLoad, rpmInsuranceService, rpmIcdGroupService) {
$scope.loadICDGroup = function(){
$ocLazyLoad.load({
name : 'rpmAdminICDGroup',
files : [
'/mobiledoc/jsp/webemr/ccmr/rpm/rpminsurance/js/controller/rpmAdminIcdGroupController.js'
]
}).then(function() {
$scope.rpmicdGroupTab ='';
$scope.rpmicdGroupTab = '/mobiledoc/jsp/webemr/ccmr/rpm/rpminsurance/html/rpmIcdGroup.html';
}, function(e) {
console.log(e);
});
};
}]);
解决方案
当您在应用程序中多次注册 angular.module('yourAppName',[]) 时,有时会发生此错误。您必须像 angular.module('yourAppName', []) 一样注册一次模块,然后通过 angular.module('yourAppName') 获取它。有关更多信息,您也可以访问此链接:http ://www.onemorecommit.com/2015/10/27/fixing-angular-injector-unpr-unknown-provider/ 。如果问题仍然存在,请尝试此操作并发表评论。
推荐阅读
- flutter - 管理页面的最佳位置在哪里?
- flutter - 如果我只使用提供 100 个功能的插件中的 1 个功能,它会影响颤振应用程序的大小吗?
- c# - 除非我注销用户,否则 CollectionView 不会更新
- maven - 在 Maven 阴影 jar 中包含测试类
- ios - Flutter Project Xcode 文件损坏
- android - 从另一个手机上的另一个应用程序控制应用程序android
- python - 可变x轴间隙matplotlib
- python - 熊猫得到过时的年份列
- html - 如何将 FlexBox 用于响应式网格
- php - 使用 php codeigniter 设置路由