angular.js:错误:[$ injector:unpr]未知的提供者

时间:2016-07-16 00:35:50

标签: javascript angularjs dependency-injection mean-stack

我一直收到这个错误,我无法理解为什么:

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-controller =“MainController”时,我收到此错误。我试图访问$ scope.fstack所以我认为我应该添加MainController。显然我不知道我在做什么,但如果有人有任何想法可以帮助我,这将是非常棒的。我需要将$scope.fstack中包含的值包含到此set键中。

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

2 个答案:

答案 0 :(得分:1)

我认为你必须声明你注入控制器的所有内容。

尝试[lml_search setFrame:CGRectMake(0, 0, kScreen_Width, 44)];

答案 1 :(得分:0)

在控制器之前定义常量。

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

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