2016-09-05 13 views
0

我正在嘗試使用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應用程序:

  1. 我檢查版本angular'js文件和angular-sanitize.js和他們是一樣的1.5.8

  2. 我的包文件看起來像這樣:

    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 Error: [$injector:unpr] Unknown provider:

有沒有人我做錯了什麼? ('$http'注射完美的作品)

+1

是否將ngSanitize注入到主模塊中? –

+0

@PoyrazYilmaz ooops,主要模塊是什麼?我只有兩個JavaScript文件:'objectoveFactory'和'objectiveController'。 – StepUp

+2

angular.module('app',[])這裏是你的主要模塊,你沒有在這裏注入任何東西。這是正常的$ https工作,因爲它與核心,但你必須注入ngSanitize,使$消毒工作... –

回答

1

進樣ngSanitize到主模塊的工作與$消毒 ...

你需要做的$動畫以及同樣的事情,注入ngAnimate

+0

他不能將它注入控制器嗎?如果他有多個控制器,是不是更模塊化? – Mawg

+1

@Mawg ngSanitize是一個angularjs模塊,因此您無法注入控制器,但可以將其注入到模塊中。如果只想在子模塊中使用它,則只將其注入到子模塊中。 –

+0

我沒有意識到這一點!而我只問,因爲我在搜索時遇到了一個問題,因爲我在嘗試直接注入控制器時遇到了這個問題。所以,加上一個給你,現在我正在尋找一個教程:-) – Mawg