Мой файл app.js с ионным приложением, который содержит все мои состояния, фабрики и директивы, стал довольно большим. Пока у него 31 государство, занимающее 189 линий, что является довольно белым.
Я начал задаваться вопросом, есть ли способ сохранить мои состояния в отдельном файле, а затем включить этот файл в файл app.js?
var myApp = angular.module('myApp', ['ionic','ngCordova','ionic.service.core','ionic.service.push','ngSanitize']);
myApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider.
state('foo', {
url : '/foo',
cache : false,
templateUrl : 'templates/foo.html',
controller : 'foo'
}).
// 29 other states
state('bar', {
url : '/bar',
cache : false,
templateUrl : 'templates/bar.html',
controller : 'bar'
});
$urlRouterProvider.otherwise('/foo');
}
// other stuff
Вы можете создать файл app.route.js
с помощью:
myApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider.
state('foo', {
url : '/foo',
cache : false,
templateUrl : 'templates/foo.html',
controller : 'foo'
}).
// 29 other states
state('bar', {
url : '/bar',
cache : false,
templateUrl : 'templates/bar.html',
controller : 'bar'
});
$urlRouterProvider.otherwise('/foo');
}
И app.js
его в свой index.html
в следующей строке app.js
Для этого вы можете создать новый модуль Angular. Угловое семя является отличным примером разделения вещей на свои собственные модули: https://github.com/angular/angular-seed
На высоком уровне вы должны создать новый.js файл (state.js) и в нем:
state.js
angular.module('myApp.states', []).config(
//add your $stateProvider code here.
);
А затем просто укажите state.js в своем индексном файле и добавьте новый модуль в список модулей
Index.html
<html>
<body>
<!-- do stuff here -->
<script src="app.js"></script>
<script src="state.js"></script>
</body>
</html>
App.js
angular.module('myApp', [
'myApp.state'
])