我正在嘗試使用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 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/ $injector/unpr?p0=sanitizeProvider%20%3C-%20sanitize%20%3C-%20objectiveController at Error (native) at http://localhost:15533/Scripts/angular.min.js:6:412 at http://localhost:15533/Scripts/angular.min.js:43:174 at Object.d [as get]
但'$http'
和'$animate',
注射完美的作品。
我已經學習了大量的信息和雙重檢查以下建議在我的Web API應用程序:
我檢查版本
angular'js
文件和angular-sanitize.js
和他們是一樣的1.5.8
。我的包文件看起來像這樣:
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" ));
我試過注射的各種方法:
objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', 'ngSanitize']; objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', '$sanitize']; objectiveController.$inject = ['$scope', '$http', 'objectiveFactory', '$animate', 'sanitize'];
但是,錯誤是一樣的:
angular.js:13920 Error: [$injector:unpr] Unknown provider:
有沒有人我做錯了什麼? ('$http'
注射完美的作品)
是否將ngSanitize注入到主模塊中? –
@PoyrazYilmaz ooops,主要模塊是什麼?我只有兩個JavaScript文件:'objectoveFactory'和'objectiveController'。 – StepUp
angular.module('app',[])這裏是你的主要模塊,你沒有在這裏注入任何東西。這是正常的$ https工作,因爲它與核心,但你必須注入ngSanitize,使$消毒工作... –