почему при использовании сервиса не отображается предупреждение?

0

Я пытаюсь использовать $ ionicPopup в своей службе. Обычно, когда я использую в контроллере, он работает корректно. Нажмите кнопку мыши и проверьте здесь плункер. http://plnkr.co/edit/wIss45ijr0DfvUVB1GPG?p=preview

Но когда я использовал на заводе, он дает ошибку. Пожалуйста, проверьте ошибку в консоли.

Ошибка: превышен максимальный размер стека вызовов

http://plnkr.co/edit/l3rvPB7AZV1WIRbMEnXd?p=preview

ap.factory('utlity', ['$ionicPopup',function($ionicPopup) {
   function showOtcresult(message){
       var alertPopup = $ionicPopup.alert({
           title: 'Alert',
           template: message.toString()
       });
       alertPopup.then(function(res) {
           console.log('Thank you for not eating my delicious ice cream cone');
       });
   }
  return {
      showOtcAlert:function showOtcresult(message){
          showOtcresult(message)
      }
  }
}]);
Теги:
ionic-framework
angular-ui-router
angularjs-scope
angularjs-directive

2 ответа

0
Лучший ответ

Проблема здесь сводится к тому же имени для двух функций, вызвавших вызов цикла

showOtcresult

return {
  showOtcAlert: function whateverNameForDebug(message) {
    showOtcresult(message)
  }
}
3

Там нет необходимости в имени в объявлении функции, так как он будет выполнен, вызвав ключ свойства showOtcAlert, поэтому вам нужно сделать:

return {
      showOtcAlert:function (message){
          showOtcresult(message)
      }
  }

Plunker

  • 0
    Существует хорошая потребность в имени функции, если вы хотите выйти из ада анонимной функции во время отладки

Ещё вопросы

Сообщество Overcoder
Наверх
Меню