我可以将离子应用程序的状态存储在单独的文件中吗?

时间:2015-11-06 18:44:17

标签: angularjs ionic

我的离子应用程序的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

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容创建文件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');
}

并将他包含在index.html下一行的app.js

答案 1 :(得分:0)

您可以为此创建一个新的Angular模块。 Angular Seed是将事情分离到自己的模块中的一个很好的例子: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'
])