简体   繁体   English

angular.js:错误:[$ injector:unpr]未知提供程序

[英]angular.js: Error: [$injector:unpr] Unknown provider

I keep getting this error and I cannot figure it why: 我不断收到此错误,但无法弄清原因:

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

Here is a config.js file: 这是一个config.js文件:

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

Here is my app.js file: 这是我的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}}');
 });
})();

Here is some of my HTML file: 这是我的一些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>

When I add the ng-controller="MainController" I get this error. 当我添加ng-controller =“ MainController”时,出现此错误。 I am trying to get access the $scope.fstack so I thought I should add the MainController in. It is obvious I do not know what I am doing but if anyone has any thoughts that could help me out that would be awesome. 我试图访问$ scope.fstack,所以我想应该添加MainController。很明显,我不知道我在做什么,但是如果有人有什么想法可以帮助我,那将非常棒。 I need to get the value contained in the $scope.fstack to this set key. 我需要获取$scope.fstack包含的值到此设置键。

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

I think you have to declare everything that you're injecting into the controller. 我认为您必须声明要注入控制器的所有内容。

Try app.controller('MainController', ['$scope', 'fstack', MainController]); 尝试app.controller('MainController', ['$scope', 'fstack', MainController]);

Define constant before controller. 在控制器之前定义常数。

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM