2014-11-03 13 views
7

Zacząłem uczyć się Angular JS i mam problem z wstrzyknięciem usługi do kontrolera. Próbuję wprowadzić usługę ThreadFactory do ThreadController, ale podczas wywoływania otrzymuję niezdefiniowany błąd. Każda rada byłaby świetna. Błąd Dostaję jest:

nieznane provider: $ scopeProvider < - $ zakres < - ThreadService

app.js

angular.module('threadsApp', ['ngRoute']); 
angular.module('threadsApp') 
    .config(function ($routeProvider, $locationProvider) { 
     $routeProvider 
      .when('/', { 
       templateUrl: 'views/index.html', 
      }) 
      .when('/selected/:topicName', { 
       templateUrl: 'views/threads.html', 
       controller: 'ThreadController', 
      }) 
      .otherwise({ 
       redirectTo: "/" 
      }); 
      $locationProvider.html5Mode(true); 
    }); 

ThreadController.js

angular.module('threadsApp').controller("ThreadController", 
    ["$scope", "$route", "$routeParams", "ThreadService", function ($scope, $route, $routeParams, ThreadService) { 
    $scope.test = "Hello!"; 
    $scope.test2 = ThreadService.get(); 
}]); 

ThreadService. js

angular.module('threadsApp').service("ThreadService", ["$scope", function ($scope) { 
    return { 
     get: function() { 
      return "Hello"; 
     } 
    } 
}]); 

Zamówienie importu

<script src="bower_components/jquery/dist/jquery.js"></script> 
    <script src="bower_components/angular/angular.js"></script> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> 
    <script src="components/app.js"></script> 
    <script src="components/bodyController.js"></script> 
    <script src="components/TopicController.js"></script> 
    <script src="components/ThreadService.js"></script> 
    <script src="components/ThreadController.js"></script> 

Odpowiedz

17

Nie można faktycznie wprowadzić do swojego ThreadService$scope sposób próbujesz. $scope nie jest typową usługą po wprowadzeniu jej do kontrolera. Jeśli usuniesz wtrysk $scope z Threadservice.js, założę się, że błąd zniknie.

W interesie nie jest zbędny, pełniejsze wyjaśnienie można znaleźć tutaj:

Injecting $scope into an angular service function()

Powiązane problemy