错误[$injector:unpr]当注入消毒依赖时

Error [$injector:unpr] when injecting sanitize dependency

本文关键字:注入 依赖 injector unpr 错误      更新时间:2023-09-26

我正在尝试使用AngularUIBootstrap中的progressBar

我有objectFactory.js文件:

(function () {
    var objectiveFactory = function ($http, animate) {
        debugger;
        return {
            getObjectives: function () {                
                return $http.get('/api/Objective/');
            }
        };
    };
    debugger;
    try {
        //objectiveFactory.$inject = ['$http', '$animate', '$sanitize'];// error
        objectiveFactory.$inject = ['$http', '$animate'];// no error
        angular.module('app', []).factory('objectiveFactory', objectiveFactory);
    }
    catch (e)
    {}    
}());

这真的很奇怪,但是如果我添加新的依赖$sanitize:

objectiveFactory.$inject = ['$http', '$animate', '$sanitize'];// not working

然后我得到了一个错误:

angular.js:13920错误:[$injector:unpr]http://errors.angularjs.org/1.5.8/$喷射器/unpr ? p0 = sanitizeProvider % 20% 3 c - 3 c % 20 sanitize % 20% % 20 objectivecontrollerat Error (native)在http://localhost: 15533/脚本/angular.min.js: 6:412在http://localhost: 15533/脚本/angular.min.js: 43:174在对象。D [as get]

'$http''$animate',注射效果良好

我已经探索了很多信息,并在我的Web API应用程序中仔细检查了以下建议:

  1. 我已经检查了angular'js文件和angular-sanitize.js版本,它们是相同的1.5.8

  2. 我的bundle文件是这样的:

     bundles.Add(new ScriptBundle("~/bundles/angularjs").Include(
                 "~/Scripts/jquery-1.10.2.min.js",
                 "~/Scripts/bootstrap.min.js",
                 "~/Scripts/angular.min.js",                     
                 "~/Scripts/angular-animate.min.js",
                 "~/Scripts/angular-sanitize.min.js",
                 "~/Scripts/ui-bootstrap-tpls-2.1.3.js",  
                 "~/Scripts/objectiveFactory.js",
                 "~/Scripts/objective.js"
                 ));
    
  3. 我已经尝试了各种注射方式:

    objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', 'ngSanitize'];
    objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', '$sanitize'];
    objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', 'sanitize'];
    

但是,错误是一样的:

angular.js:13920错误:[$injector:unpr] Unknown provider:

有谁知道我做错了什么吗?('$http'注射效果良好)

ngSanitize注入主模块以使用$sanitize

你也需要为$animate做同样的事情,注入ngAnimate