2016-03-29 4 views
0

Я внедряю глобальную обработку ошибок в ионическом приложении. Я хочу получить IonicPopup, сообщив мне, что произошла ошибка. Для errorExceptionHandler я создал новую конфигурацию, основанную на существующем решении, которое содержит предупреждение как глобальную обработку ошибок.

angular 
    .module('MyApp', ['ionic']) 
    .config(function ($provide, $ionicPopup) { 
     $provide.decorator('$exceptionHandler', ['$delegate', function ($delegate) { 
      return function (exception, cause) { 
       $delegate(exception, cause); 
       //Alert works fine 
       alert(exception.message); 
       //$ionicPopup will follow here 
      }; 
     }]); 
    }) 

Это привело к следующей ошибке.

angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: Error: [$injector:unpr] Unknown provider: $ionicPopup

Что мне здесь не хватает?

+0

попробуйте создать завод или услугу. –

ответ

-1

Почему вы инъекционный $ ionicPopup внутри функции конфигурации, когда вы должны вводить его в controller/factory/service

http://ionicframework.com/docs/api/service/ $ ionicPopup/

config функция принимает providers, вы можете вводить только поставщик, если вообще вам это нужно ... вы могли бы сделать что-то вроде ниже.

angular.module('myApp').config(function() { 
    var injector = angular.injector(['ng']), 
     ionicPopup= injector.get('$ionicPopup'), 
});