2015-03-25 2 views
4

У меня возникла проблема, когда разделить мою логику приложения AngularJS на несколько файлов, вызвала у меня проблему, когда работает только последняя, ​​а предыдущие, вероятно, пропущены.AngularJS разбит на несколько файлов - только последний работает

Вот включение index.html:

<script src="js/app.js"></script> 
<script src="js/app.config.js"></script> 
<script src="js/controllers/HomeController.js"></script> 

Каждый файл содержит очень небольшое количество логики:

Инициализация:

angular.module('sportcial', ['ionic']) 
.run(function run($ionicPlatform) { 
    alert(2); 
    $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) { 
      StatusBar.styleDefault(); 
     } 
    }); 
}); 

Config:

angular.module('sportcial', ['ionic']).config(function configApp($ionicConfigProvider) { 
    alert(1); 
    $ionicConfigProvider.tabs.position('bottom'); 
}); 

HomeContr Oller:

angular.module('sportcial', ['ionic']) 
    .config(function config($stateProvider, $urlRouterProvider) { 
     alert(3) 
    }) 
    .controller('HomeController', ['$scope', function HomeController($scope) { 
     var home = this; 
    }] 
); 

Только последний срабатывает тревога (3) ...

Что я отсутствующий здесь, ребята? :)

ответ

6

Вы переписываете модуль sportcial в каждом файле.

Используйте сеттера синтаксис

angular.module("moduleName", [moduleDependencies, ..]) 

Для создания модуля.

Если вы хотите что-то добавить к существующему модулю, то необходимо вызвать геттер:

angular.module("moduleName") 

Так, например, вам нужно обновить конфигурационный файл, чтобы:

angular.module('sportcial').config(function configApp($ionicConfigProvider) { 
    alert(1); 
    $ionicConfigProvider.tabs.position('bottom'); 
}); 
1

Любые angular module должен быть определен только один раз с зависимостями:

angular.module('sportcial', ['ionic']) 

, но он может быть получен столько раз, сколько необходимо, вызвав module без зависимостей:

angular.module('sportcial').config(.... 
angular.module('sportcial').controller(.... 

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

Смотрите также 'Creation versus Retrieval':

Помните, что с помощью angular.module('myModule', []) создаст модуль myModule и перезаписать существующий модуль с именем myModule. Использовать angular.module('myModule') для извлечения существующего модуля

1

Вы объявляете новый модуль в каждом файле.

Угловой синтаксис для установки модуля является:

angular.module('moduleName', dependenciesArray); 

Для получения модуля, а затем определить его модули синтаксис выглядит следующим образом:

angular.module('moduleName'); 

Удалить массив с ионной зависимости от вашего config и файлы контроллеров.

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