【问题标题】:AngularJS Service Undefined: Unknown provider: $scopeProvider <- $scopeAngularJS服务未定义:未知提供者:$scopeProvider <- $scope
【发布时间】:2014-11-03 01:45:22
【问题描述】:

我已经开始学习 Angular JS,但在将服务注入控制器时遇到了问题。我正在尝试将ThreadFactory 服务放入ThreadController,但调用它时出现未定义的错误。任何建议都会很棒。我得到的错误是:

未知提供者:$scopeProvider

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>

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您实际上无法按照您尝试的方式将$scope 注入您的ThreadService。当您将$scope 注入控制器时,它不是典型的服务。如果你从 Threadservice.js 中删除 $scope 注入,我敢打赌错误会消失。

    为了避免多余,可以在这里找到更完整的解释:

    Injecting $scope into an angular service function()

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 2017-04-03
      • 2016-05-09
      • 2013-10-19
      相关资源
      最近更新 更多