Ошибка, сделав инъекцию, модулировала, чтобы удалять биографию в ionic

Стараясь удалять биографию app, сделанного с ionic верь в новый модуль, но это после того, как стараюсь делать инъекцию, мне производится следующая проблема

ionic.bundle.min.js:40 Ункаугт Эррор: [$ injector:modulerr] http://errors.angularjs.org / 1.4.3 / $injector/modulerr? p0=unicesarApp&p1=Erro … %2F%2Flocalhost%3A8100%2Flib%2Fionic%2Fjs%2Fionic.bundle.min.js%3A74%3A503)

index.html

    
    
    
    
    
    

login.js

angular.module('unicesarApp', ['ionic', 'historialApp'])
       .controller('formulario', formulario)
       .service('obtenerDatos', obtenerDatos)
       .config(config);


config.$inject = ['$stateProvider', '$urlRouterProvider', 'historial'];

.state('menuestu',{
             url: '/menuestu',
             templateUrl: "Templates/Estudiante/menuestu.html",
             controller: "historialApp"
       })

historial.js

angular.module('historialApp', ['ionic'])
   .controller('historial', historial);

historial.$inject = ['$ionicHistory'];

function historial($ionicHistory){
    $ionicHistory.clearHistory();    
}

menu.html - сдержись


Menu Estudiante

В момент деления инъекцию модулю и старания призывать в драйвер, который я добавил к этому модулю, удалять биографию создается ошибка, и также создается ошибка, если бы он это снял и это назвал бы с app.js, итак, когда он старается вводить информацию в компьютер ввиду меню, выходит ошибка и не продвигается.

Я хотел бы знать, что то, что плохое, если это способ делать инъекцию или называть драйвер, спасибо заранее.

0
задан 31.03.2016, 22:40
1 ответ

Ты пробуешь использовать factory или услугу в одном config block. Это ошибка так как:

Модуль - коллекция блоков выполнения и конфигурации, которые применены к приложению в течение процесса инициализации. в Вашей самой простой форме модуль состоит из коллекции двух типов блоков:

  1. Блоки конфигурации - выполнены в фазе конфигурации и реестре providers. Только providers и могут сделать инъекцию постоянным величинам в блоки конфигурации. Это делается, чтобы предотвращать случайный instanciación услуг до того, как они конфигурировались полностью.

  2. Блоки выполнения - выполнены после, что injector создан, и используются, чтобы загружать приложение. Только инстанциям и постоянным величинам могут делать инъекцию в блоки выполнения. Это делает себе, чтобы предупреждать, что были сделаны больше конфигураций в систему в течение фазы run-time.

Если ты сосредотачиваешься на фрагментах, выделенных в полужирном шрифте, он говорит тебе, что только то, что было объявлено с .constant и .provider смоги работать в одном config block в то время как в run blocks ты не можешь использовать то, что было объявлено с .provider

Просто замени эту линию в файле login.js

angular.module('unicesarApp', ['ionic', 'historialApp'])
   .controller('formulario', formulario)
   .service('obtenerDatos', obtenerDatos)
   //.config(config); => quita el config y pon un run
   .run(config)

В глаза углового $ionicHistory это factory как любой другой, хотя он будет объявлен в книжном магазине. providers легко отождествляемые, потому что они заканчиваются в Provider как например $ionicConfigProvider.

Заметь: Я использовал используй нотацию .run(config) так как config это функция, которую ты считаешь объявленной в твоем коде. Если ты назовешь переменную, он будет менее смущенным, но для углового у него нет значимости, так как для этого только имеет значение тип объекта, которому ты стараешься делать инъекцию в блок (если это factory, service, и т.д.).

Обновление

Ответив вопрос я подумал, что historial это был factory, который ты попробовал добавить к модулю. Если это один controller ты это используешь плохо, так как controlers присоединяются в модуль, автоматически будучи объявлены используя нотацию

angular.module('miModulo').controller('miController');
// ya el módulo "miModulo" contiene un controller llamado "miController"
// en el ejemplo "miModulo" ya había sido declarado antes

Потом, когда ты объявляешь другой модуль и помещаешь ему зависимости controlers модуля присоединяются в другой также

// Se declara un módulo "miApp" y se le especifica que "miModulo" es una dependencia
angular.module('miApp', ['miModulo']);
// El controller "miController" se agrega a "miApp" automáticamente
// o los puedes agregar al módulo "miApp" directamente
2
ответ дан 24.11.2019, 14:40
  • 1
    Я пытаюсь, уже предупреждаю тебя @devconcept – Pedro Miguel Pimienta Morales 31.03.2016, 19:46
  • 2
    я получаю эту ошибку сейчас, Ункаугт Эррор: [$ injector:unpr] Unknown provider: $stateProviderProvider < - $stateProvider – Pedro Miguel Pimienta Morales 31.03.2016, 19:47
  • 3
    Прочитай мой ответ снова. Ты пробуешь делать инъекцию объединенным factory и provider. Этот combinaci и # 243; n он не является возможным . То, что ты должен делать aqu и # 237; он состоит в том, чтобы разделять их на 2 и выполнять часть c и # 243; я говорю в [одной 110] и части в одном config – devconcept 31.03.2016, 21:22
  • 4
    Может быть, я ошибся, но я верю в то, что est и # 225; s стараясь делать инъекцию controller в часть, который говорит config.$inject = ['$stateProvider', '$urlRouterProvider', 'historial'];. и #39; биография и # 39; это controller или factory в твоем app? – devconcept 31.03.2016, 21:28
  • 5
    биография - такой controller каков специфическое в коде, который я поместил, когда я издам @devconcept – Pedro Miguel Pimienta Morales 31.03.2016, 23:19