【问题标题】:AngularJS throws Unknown provider: $scopeProvider <- $scope error when I try to use modulesAngularJS 在我尝试使用模块时抛出 Unknown provider: $scopeProvider <- $scope 错误
【发布时间】:2013-10-23 15:30:41
【问题描述】:

我刚刚开始使用 AngularJS 以下代码在控制台中给出错误。

未知提供者: $scopeProvider

var app;
(function(angular){

    app = angular.module('OrdersDashboard',[]);
    app.config(['$routeProvider', function($routeProvider) {
        $routeProvider.
            when('/current/new', {templateUrl: 'orders/partials/new_current', controller: 'newActiveOrdersCtrl'}).
            otherwise({redirectTo: '/'});
    }]);
    app.service('newActiveOrdersModel', ['$scope', '$rootScope',
        function($scope, $rootScope){

            this.Orders=["This is a test order"];
            this.fetchOrders = function(){

                console.log("This is a test order");
                this.Orders=["This is a test order1111"];
            };
        }]);
    app.controller('newActiveOrdersCtrl', ['$scope', '$rootScope', 'newActiveOrdersModel',
        function($scope, $rootScope, newActiveOrdersModel){

            $scope.test="Hello World";
        }]);

})(angular);

Angular Js 似乎无法识别“newActiveOrdersModel”。

【问题讨论】:

  • 你不能将$scope 注入到服务中,没有什么能比得上单例 $scope。不知道您为什么要尝试注入它,因为您的代码似乎没有使用它...

标签: javascript angularjs


【解决方案1】:

这只是一个猜测,但我不知道您为什么将 $scope 列为服务的依赖项。我觉得是这样的

 app.service('newActiveOrdersModel', ['$rootScope',
    function($rootScope){..}]

将解决错误。另外,除非您绝对需要,否则我不会包含 $rootScope 。在 Angular 中,将内容存储在 $rootScope 中通常被认为是不好的做法。

【讨论】:

  • 我不知道范围不能列为依赖项。RootScope 将是必需的,因为我打算触发事件以与模型进行通信
  • 好的,有时您只需要使用 rootScope,但我建议您将事件存储在另一个服务中,而不是使用全局范围。同样,使用全局范围本身并没有错,但为了防止命名冲突和过度填充全局范围,它被认为是更好的做法。
猜你喜欢
  • 2016-05-26
  • 1970-01-01
  • 2016-11-12
  • 2015-08-27
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多