2015-08-14 6 views
1

Я пытаюсь вызвать функцию deleteConv, которая находится внутри службы ChatsService из $ ionicActionSheet, но это не удалось. У меня была ошибка Error: ChatsService.deleteConversation(...) is undefined даже если сервис определен и введен контроллер

/** 
    Controller 
**/  
    angular.module('Tot.controllers') 
     .controller('MessageController', function($scope, $timeout,ChatsService,$localStorage,,Globals,$ionicActionSheet,Messages) { 


      var iduser=$localStorage[Globals.USER_LOGGED].id; 
      $scope.onConversationHold = function(e, itemIndex, conversation) { 
       $ionicActionSheet.show({ 
        cancelText:'<span class="no-text-transform">Annuler</span>', 
        destructiveText: '<span class="no-text-transform">Supprimer</span>', 
        destructiveButtonClicked: function() { 
         ChatsService.deleteConversation(conversation,iduser).then(function(response){ 
          alert(response); 

          return true; //Close the model? 

         }) 
        } 
       }); 
      }; 

    }); 



/** 
ChatsService.js 
**/ 
angular.module('Tot.services') 
    .service('ChatsService', function($q,$http,Globals) { 
     var url=Globals.urlServer+Globals.port; 
     this.deleteConversation=function(conversation,iduser){ 
      var deferred=$q.defer(); 
      $http.get(url+'/conversation/deleteConversation?idconversation='+conversation+'&iduser='+iduser).success(function(response){ 
       if(response) 
       { 
        deferred.resolve(response); 
       } 
      }); 
     } 
    }); 

Как я могу это исправить?

[Изменено]

/** 
    app.js 
**/ 

     angular.module('Tot', ['ionic','Tot.controllers','Tot.services','Tot.constants']) 
     .run(function($ionicPlatform,Messages,$rootScope,$cordovaStatusbar, $state,Globals,$localStorage,$mdDialog,$mdToast) { 
      $ionicPlatform.ready(function() { 
      // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
      // for form inputs) 
      if (window.cordova && window.cordova.plugins.Keyboard) { 
       cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
      } 
      if (window.StatusBar) { 
       // org.apache.cordova.statusbar required 

       //StatusBar.styleDefault(); 
       $cordovaStatusbar.overlaysWebView(true); 
       $cordovaStatusbar.styleHex('#c62828') 

      } 
     .... 
     }) 
+0

довольно уверен, что вы должны вводить свои услуги в свой модуль, можете ли вы сделать кодекс или отправить еще какой-нибудь код, пожалуйста? –

+0

@JessPatton Я обновил свой вопрос с помощью всего контроллера и служб – Pisix

ответ

0

хорошо, так что я уверен, что вам просто нужно вводить модуль Tot.service в ваш модуль Tot.controller. поэтому модуль Tot.controller должен выглядеть так:

angular.module('Tot.controllers', ['Tot.services']) 
     .controller('MessageController', function($scope, $timeout,ChatsService,$localStorage,,Globals,$ionicActionSheet,Messages) { 


      var iduser=$localStorage[Globals.USER_LOGGED].id; 
      $scope.onConversationHold = function(e, itemIndex, conversation) { 
       $ionicActionSheet.show({ 
        cancelText:'<span class="no-text-transform">Annuler</span>', 
        destructiveText: '<span class="no-text-transform">Supprimer</span>', 
        destructiveButtonClicked: function() { 
         ChatsService.deleteConversation(conversation,iduser).then(function(response){ 
          alert(response); 

          return true; //Close the model? 

         }) 
        } 
       }); 
      }; 

    }); 

Как и впрыскивание ионного в ваш основной модуль для вас. Модули необходимо вводить в другие модули для доступа к службам и контроллерам внутри этих модулей. Это должно сработать для вас. дайте мне знать, если это не так, и у меня будет другой взгляд.

+0

'Tot.service' уже введен в' app.js', как вы можете видеть в моем вопросе (отредактированном), поэтому я думаю, что нет необходимости вводить его снова в ' Tot.controllers' – Pisix

+0

Хорошо попробуйте и скажите мне, что произойдет, а затем я снова посмотрю на него. –

+0

Без успеха я бы хотел напомнить, что другие функции в ChatsService вызывают вне $ ionicActionSheet из Tot.Controllers без проблем. – Pisix

Смежные вопросы