2016-07-16 84 views
0

我不斷收到這個錯誤,我想不通爲什麼它:

angular.js:13708 Error: [$injector:unpr] Unknown provider: fstackProvider <- fstack <- MainController 

這裏是一個config.js文件:

angular.module("app") 
.constant("fstack", "xxxxxxxxxxxxxx"); 

這裏是我的app.js文件:

(function(){ 
var app = angular.module('app', ['addCarCtrl', 'galleryCtrl','detailCtrl', 'userCtrl', 'ngRoute', 'angular-filepicker']) 
    app.controller('MainController', MainController); 
    function MainController($scope, fstack) { 
    $scope.fstack = fstack; 
    } 
    app.config(function($routeProvider, filepickerProvider){ 
     //The route provider handles the client request to switch route 
     $routeProvider.when('/addCar', { 
      templateUrl: 'partials/addCar.html', 
      controller: 'addCarController' 
     }) 
     .when('/gallery', { 
      templateUrl: 'partials/gallery.html', 
      controller: 'galleryController' 
     }) 
     .when('/detail/:id', { 
      templateUrl: 'partials/detail.html', 
      controller: 'detailController' 
     }) 
     .when('/login', { 
     templateUrl: 'partials/login.html', 
     controller: 'userController' 
     }) 
     .when('/', { 
     templateUrl: 'partials/home.html' 
     }) 
     //Redirect to addCar in all the other cases. 
     .otherwise({redirectTo:'/'}); 

     filepickerProvider.setKey('{{fstack}}'); 
}); 
})(); 

下面是我的一些HTML文件:

<body> 
<div class="container"> 
<nav class="navbar navbar-inverse"> 
    <div class="container-fluid"> 
     <div class="navbar-header"> 
      <a class="navbar-brand" href="#">AMC MEAN app</a> 
     </div> 

     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav navbar-right"> 
      <li role="presentation"><a href="/#/addCar">Add Car</a></li> 
      <li role="presentation"><a href="/#/gallery">Gallery</a></li> 
      </ul> 
     </div> 
    </div> 
</nav> 
<!-- Here is where the partials will be displayed --> 
<div ng-view ng-controller="MainController"></div> 

當我添加了NG-控制器= 「MainController」 我得到這個錯誤。我試圖訪問$ scope.fstack,所以我想我應該添加MainController。很明顯,我不知道我在做什麼,但如果任何人有任何想法可以幫助我,這將是非常棒的。我需要將$scope.fstack中包含的值設置爲此設置密鑰。

filepickerProvider.setKey('{{fstack}}'); 
+0

請參閱[this](https://docs.angularjs.org/error/$injector/unpr)文章。 – 2016-07-16 00:57:53

+0

嘗試在'app.js'中添加'.constant(「fstack」,「xxxxxxxxxxxxxx」)'! –

+0

xxxxxxxxxxxx是我不希望在瀏覽器中公開的API密鑰。如果我這樣做,那麼xxxxxxxxxxxx可供人們在瀏覽器中使用? –

回答

1

我想你必須聲明你注入控制器的所有東西。

嘗試app.controller('MainController', ['$scope', 'fstack', MainController]);

0

控制器之前定義常量。

angular.module("app") 
    .constant("fstack", "xxxxxxxxxxxxxx"); 

     app.controller('MainController', MainController); 
     function MainController($scope, fstack) { 
     $scope.fstack = fstack; 
     } 
+0

如果我這樣做,xxxxxxxx會暴露給瀏覽器中的人嗎?這是一個API密鑰。謝謝 –

相關問題