2014-11-03 84 views
7

我已經開始學習Angular JS,並且在將控件注入服務時遇到問題。我試圖將ThreadFactory服務放入ThreadController,但是在調用它時出現未定義的錯誤。任何建議都會很棒。我得到的錯誤是:

未知提供商:$ scopeProvider < - $範圍< - 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"; 
     } 
    } 
}]); 

進口

<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> 

回答

17

的順序可以不實際注入$scope到您的ThreadService你想要的方式。當您將其注入控制器時,$scope不是典型的服務。如果您從Threadservice.js中刪除$scope注入,我敢打賭錯誤將消失。

在不是冗餘的利益,更全面的解釋可以在這裏找到:

Injecting $scope into an angular service function()

相關問題