javascript - 向 Controller 注入(inject)服务出现 unpr 错误

标签 javascript angularjs

当我将服务注入(inject) Controller 时,我遇到了 unpr 错误,我研究了一种方法来做到这一点,并且我做到了,但仍然没有进展

这是我的 app.js

'use strict';

var myApp = angular.module('myapp', [
  'ngRoute','ui.bootstrap'
]);

angular.module('myapp')
.config(['$routeProvider','$locationProvider',
  function($routeProvider,$locationProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/home.html',
        controller: 'mainController'
      })
      .when('/home',{
        templateUrl: 'views/home.html',
        controller: 'mainController'
      })
     .otherwise({
        redirectTo: '/'
      });

      // use the HTML5 History API
        $locationProvider.html5Mode(true);
  }]);


angular.module('myapp')
.run(function($rootScope){
    $rootScope = 'link to api';
});

这是我的service.js

  'use strict';
    /*
    $http is neccessity param to make rest calls
    $q variable to hold a promise
    $rootscope handle scope
    */
    angular.module('myapp')
    .service('task',['$http','$q','$rootscope',function($http, $q, $rootscope){
        var task = this;
        task.itemList = {}

        task.getItem = function (){
            var defer = $q.defer();

            $http.get('by_pass.php' + $rootscope.itemUrl)
            .success(function (res){ 
                task.itemlist = res;
                defer.resolve(res);
            })
            .error(function (err, status) {
                defer.reject(err);
            });

            return defer.promise;
        }


        return task;
    }]);

这是我的controller.js

'use strict';
angular.module('myapp')
.controller('mainController',['$scope', '$rootScope', 'task', function($scope, $rootScope, task) {

  console.log($rootScope.itemUrl);

    $scope.init = function (){
        $scope.perpx = 9;
        $scope.itemPlaced = "0";
        $scope.listSelectedItem = 1 ;

        $scope.taskGetItem();
    console.log('here');
    }


    $scope.taskGetItem = function (){
    console.log('here too');
      var getItemResult = task.getItem()
      .then(function(res){
        //when success
        $scope.tasks = task.itemList;
        console.log($scope.tasks);
      }, function(err){
        //error
      });
    }

    $scope.init();

}]);

这就是我所得到的

Error: [$injector:unpr] http://errors.angularjs.org/1.3.5/$injector/unpr?p0=%24rootscopeProvider%20%3C-%20%24rootscope%20%3C-%20task

谁能帮帮我。我是 Angular 新手,我需要重构我的代码才能测试它,但我在这里。提前致谢。

最佳答案

更改:

.service('task',['$http','$q','$rootscope',function($http, $q, $rootscope){

致:

.service('task',['$http','$q','$rootScope',function($http, $q, $rootScope){

关于javascript - 向 Controller 注入(inject)服务出现 unpr 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310124/

相关文章:

javascript - 包装函数的类 : get correct typings and access to number of arguments (in typescript)

javascript - 如何在 Web 应用程序中嵌入 Neo4j 浏览器结果可视化

php - 带有 keyBy 的 Laravel 响应返回对象和数组

javascript - Angularjs 响应未打印在表单中

javascript - ng-idle 在 IE9 和 IE10 中不起作用

javascript - 为 block 元素的宽度设置动画,因为它随 jQuery 的变化而变化?

javascript - HTML/CSS 将鼠标悬停在图像上以获得特写图像/测试/超链接

regex - Angular 动态 ngPattern

javascript - 在 AngularJS 中使用 ngSanitize 指令

javascript - 理解 promise 链接 : 'then()' get's undefined parameter as the result