Javascript 为什么可以';我的控制器找不到我的服务吗?

Javascript 为什么可以';我的控制器找不到我的服务吗?,javascript,angularjs,service,controllers,Javascript,Angularjs,Service,Controllers,运行此代码时,我不断收到“Error:$injector:unpr Unknown Provider”。我看过很多类似于这个问题的其他答案,但就是看不出错误在哪里 另外,我使用“myService()”调用此服务是否正确 我是一个比较新的角度,所以任何帮助或建议将不胜感激。提前谢谢 我的服务 angular.module('APP') .service('myService', ['$scope' function($scope) { $scope.search = {};

运行此代码时,我不断收到“Error:$injector:unpr Unknown Provider”。我看过很多类似于这个问题的其他答案,但就是看不出错误在哪里

另外,我使用“myService()”调用此服务是否正确

我是一个比较新的角度,所以任何帮助或建议将不胜感激。提前谢谢

我的服务

angular.module('APP')

  .service('myService', ['$scope' function($scope) {

    $scope.search = {};

    $scope.resetFilters = function () {
        // needs to be a function or it won't trigger a $watch
        $scope.search = {};
    };

    // pagination controls
    $scope.currentPage = 1;
    $scope.totalItems = $scope.videos.length;
    $scope.entryLimit = 5; // videos per page
    $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);

    // $watch search to update pagination
    $scope.$watch('search', function (newVal, oldVal) {
        $scope.filtered = filterFilter($scope.videos, newVal);
        $scope.totalItems = $scope.filtered.length;
        $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);
        $scope.currentPage = 1;
    }, true);

}]);
我的控制器

angular.module('APP')

  .filter('startFrom', function () {
      return function (input, start) {
          if (input) {
              start = +start;
              return input.slice(start);
          }
          return [];
      };
  })

  .controller('dbCtrl', ['$scope', '$http', 'filterFilter', 'myService', function ($scope, $http, filterFilter, myService) {

    $http.get("js/science.php")
      .success(function(data){
          $scope.videos = data;

          myService();
      })
      .error(function() {
          $scope.data = "error in fetching data";
    });

}]);
我的链接

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>

<!-- CDN's and API's-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>

<!-- Services -->
<script src="controllers/myService.js"></script>

<!-- Dependencies -->
<script src="js/ui-router-title.js"></script>
<script src="js/angular-youtube-embed.js"></script>
<script src="js/angular-ui-router.min.js"></script>
<script src="js/app.js"></script>

<!-- Controllers -->
<script src="controllers/headerCtrl.js"></script>
<script src="controllers/dbCtrl.js"></script>
<script src="controllers/scienceCtrl.js"></script>
<script src="controllers/politicsCtrl.js"></script>
<script src="controllers/pageCtrl.js"></script>
<script src="controllers/tabsCtrl.js"></script>
 <script src="controllers/modalCtrl.js"></script>

对不起,我应该提到,我有一个主应用程序文件,在其中我使用
angular.module('app',[])声明了我的应用程序依赖关系至于不能将$scope注入服务,我实际上只是尝试使用分页代码并使其可重用。有没有想过我该如何做到这一点?谢谢你的快速回复

这是我想使其可重用的带有分页代码的原始控制器

angular.module('APP')

  .filter('startFrom', function () {
      return function (input, start) {
          if (input) {
              start = +start;
              return input.slice(start);
          }
          return [];
      };
  })

  .controller('dbCtrl', ['$scope', '$http', 'filterFilter', function ($scope, $http, filterFilter) {

    // Link to PHP for mySQL content
    $http.get("js/science.php")
      .success(function(data){
        $scope.videos = data; // Array named 'data'

        // FROM HERE
        //=====================
        $scope.search = {};

        $scope.resetFilters = function () {
            // needs to be a function or it won't trigger a $watch
            $scope.search = {};
        };

        // pagination controls
        $scope.currentPage = 1;
        $scope.totalItems = $scope.videos.length;
        $scope.entryLimit = 5; // videos per page
        $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);

        // $watch search to update pagination
        $scope.$watch('search', function (newVal, oldVal) {
            $scope.filtered = filterFilter($scope.videos, newVal);
            $scope.totalItems = $scope.filtered.length;
            $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);
            $scope.currentPage = 1;
        }, true);
        // TO HERE REUSABLE
        //=====================

        })

      .error(function() {
          $scope.data = "error in fetching data";
    });

}]);

对不起,我应该提到,我有一个主应用程序文件,在其中我使用
angular.module('app',[])声明了我的应用程序依赖关系至于不能将$scope注入服务,我实际上只是尝试使用分页代码并使其可重用。有没有想过我该如何做到这一点?谢谢你的快速回复

这是我想使其可重用的带有分页代码的原始控制器

angular.module('APP')

  .filter('startFrom', function () {
      return function (input, start) {
          if (input) {
              start = +start;
              return input.slice(start);
          }
          return [];
      };
  })

  .controller('dbCtrl', ['$scope', '$http', 'filterFilter', function ($scope, $http, filterFilter) {

    // Link to PHP for mySQL content
    $http.get("js/science.php")
      .success(function(data){
        $scope.videos = data; // Array named 'data'

        // FROM HERE
        //=====================
        $scope.search = {};

        $scope.resetFilters = function () {
            // needs to be a function or it won't trigger a $watch
            $scope.search = {};
        };

        // pagination controls
        $scope.currentPage = 1;
        $scope.totalItems = $scope.videos.length;
        $scope.entryLimit = 5; // videos per page
        $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);

        // $watch search to update pagination
        $scope.$watch('search', function (newVal, oldVal) {
            $scope.filtered = filterFilter($scope.videos, newVal);
            $scope.totalItems = $scope.filtered.length;
            $scope.noOfPages = Math.ceil($scope.totalItems / $scope.entryLimit);
            $scope.currentPage = 1;
        }, true);
        // TO HERE REUSABLE
        //=====================

        })

      .error(function() {
          $scope.data = "error in fetching data";
    });

}]);

首先,您不能将
$scope
注入到服务中。请查看有关$scope、控制器和服务的角色的文档和教程。您还需要在某个时候使用
angular.module('APP',[])初始化/声明'APP'模块-请注意
[]
-这是您列出所依赖的任何其他模块的数组。拥有第二个参数也是告诉
angular.module
您正在声明一个新模块(而不是检索一个现有模块来扩展它)的原因。首先,您不能将
$scope
注入到服务中。请查看有关$scope、控制器和服务的角色的文档和教程。您还需要在某个时候使用
angular.module('APP',[])初始化/声明'APP'模块-请注意
[]
-这是您列出所依赖的任何其他模块的数组。拥有第二个参数也是告诉
angular.module
您正在声明一个新模块(而不是检索一个现有模块来扩展它)的原因