Angularjs 错误:[$injector:unpr]未知提供程序:starterServiceProvider<;-起动服务

Angularjs 错误:[$injector:unpr]未知提供程序:starterServiceProvider<;-起动服务,angularjs,ionic-framework,service,dependency-injection,controller,Angularjs,Ionic Framework,Service,Dependency Injection,Controller,我在控制台中遇到错误。我使用的是带有angular的ionic-v1,我的后端是php和mysql Error: [$injector:unpr] Unknown provider: starterServiceProvider <- starterService http://errors.angularjs.org/1.2.12/$injector/unpr?p0=starterServiceProvider%20%3C-%20starterService a

我在控制台中遇到错误。我使用的是带有angular的ionic-v1,我的后端是php和mysql

 Error: [$injector:unpr] Unknown provider: starterServiceProvider <- starterService
    http://errors.angularjs.org/1.2.12/$injector/unpr?p0=starterServiceProvider%20%3C-%20starterService
        at ionic.bundle.js:7536
        at ionic.bundle.js:11004
        at Object.getService [as get] (ionic.bundle.js:11131)
        at ionic.bundle.js:11009
        at getService (ionic.bundle.js:11131)
        at invoke (ionic.bundle.js:11158)
        at Object.instantiate (ionic.bundle.js:11179)
        at ionic.bundle.js:14238
        at ionic.bundle.js:13647
        at forEach (ionic.bundle.js:7768)
这是我的控制器。js
它是一个控制器,用于从HTML页面注入数据,并调用服务
“starterServices”

这是我的service.js

app.service('starterService', function($http){

    var serviceUrl = "http://localhost/2404/CRUD Ionic/www/php/";

    this.addtask = function(data){
        var response = $http({
            method : "POST",
            url : serviceUrl + "createTask.php",
            params : data
        });
        return response;

    };
    this.delTask = function(task){
        var response = $http ({
            method : "POST",
            usr : serviceUrl + "deleteTask.php",
            params : {task}
        });
        return response;
    };


});    

应用程序模块应如下所示:

var app = angular.module('starter', ['ionic'])
因为它不依赖任何名为
'starterService'
的模块。这是服务,不是模块。此处仅允许将模块添加为依赖项

更新:

您还忘了提供适当的依赖关系映射

.controller('ToDoListCtrl',['$scope','$ionicModal', 'starterService' , function($scope,$ionicModal,starterService) {
    $scope.toDoListItems = [{
    task: 'Scuba Diving',
    status: 'not done'
  }, {
    task: 'Climb Everest',
    status: 'not done'
  }];

$scope.AddItem = function(data){
     var addTask = starterService.addtask();
   addTask.then(function(data){
      $scope.task = data.task;
      $scope.status = data.status;
    });
    };
  /*$scope.toDoListItems.push({task:data.newItem,status:'not done'});
     data.newItem = ' ';
         $scope.closeModalAdd();*/

$scope.DeleteItem = function(data){
      var ans = confirm('Are you sure to delete it?');
      if(ans){
        var deleteTask = starterService.delTask(task);

         alert('Sucessfully deleted task ',+ data.task);

      }

  /*
  $scope.toDoListItems.pop({task: data.newItem});
   data.newItem = ' ';
         $scope.closeModalDelete();
  */
    alert('Sucessfully deleted task ');

  };

$ionicModal.fromTemplateUrl('modal.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.modal = modal;
  });

$ionicModal.fromTemplateUrl('dmodal.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(dmodal) {
    $scope.dmodal = dmodal;
  });

  $scope.openModalAdd = function() {
    $scope.modal.show();
  };
  $scope.closeModalAdd = function() {
    $scope.modal.hide();
  };

  $scope.openModalDelete = function() {
    $scope.dmodal.show();
  };
  $scope.closeModalDelete = function() {
    $scope.dmodal.hide();
  };
  //Cleanup the modal when we're done with it!
  $scope.$on('$destroy', function() {
    $scope.modal.remove();
        $scope.dmodal.remove();
  });

您是否将您的
service.js
包含在
html
页面中?是的,在标题中获取此错误:[$injector:unpr]未知提供程序:starterServiceProvider@nasiruddinsaied我已稍微更新了答案。我没有注意到您将self模块添加为依赖项。现在试试看。@NasiruddinSaiyed也可以看到控制器的更新。您忘记提供适当的依赖关系映射。
var app = angular.module('starter', ['ionic'])
.controller('ToDoListCtrl',['$scope','$ionicModal', 'starterService' , function($scope,$ionicModal,starterService) {
    $scope.toDoListItems = [{
    task: 'Scuba Diving',
    status: 'not done'
  }, {
    task: 'Climb Everest',
    status: 'not done'
  }];

$scope.AddItem = function(data){
     var addTask = starterService.addtask();
   addTask.then(function(data){
      $scope.task = data.task;
      $scope.status = data.status;
    });
    };
  /*$scope.toDoListItems.push({task:data.newItem,status:'not done'});
     data.newItem = ' ';
         $scope.closeModalAdd();*/

$scope.DeleteItem = function(data){
      var ans = confirm('Are you sure to delete it?');
      if(ans){
        var deleteTask = starterService.delTask(task);

         alert('Sucessfully deleted task ',+ data.task);

      }

  /*
  $scope.toDoListItems.pop({task: data.newItem});
   data.newItem = ' ';
         $scope.closeModalDelete();
  */
    alert('Sucessfully deleted task ');

  };

$ionicModal.fromTemplateUrl('modal.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.modal = modal;
  });

$ionicModal.fromTemplateUrl('dmodal.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(dmodal) {
    $scope.dmodal = dmodal;
  });

  $scope.openModalAdd = function() {
    $scope.modal.show();
  };
  $scope.closeModalAdd = function() {
    $scope.modal.hide();
  };

  $scope.openModalDelete = function() {
    $scope.dmodal.show();
  };
  $scope.closeModalDelete = function() {
    $scope.dmodal.hide();
  };
  //Cleanup the modal when we're done with it!
  $scope.$on('$destroy', function() {
    $scope.modal.remove();
        $scope.dmodal.remove();
  });