Angularjs ui-router状态定义

时间:2017-04-05 13:30:44

标签: javascript angularjs angular-ui-router

在角度ui-router tutorial中,所有状态都在同一个js文件中定义。

myApp.config(function($stateProvider) {
  // An array of state definitions
  var states = [
    { name: 'hello', url: '/hello', component: 'hello' },
    { name: 'about', url: '/about', component: 'about' },

    { 
      name: 'people', 
      url: '/people', 
      component: 'people',
      resolve: {
        people: function(PeopleService) {
          return PeopleService.getAllPeople();
        }
      }
    },

    { 
      name: 'people.person', 
      url: '/{personId}', 
      component: 'person',
      resolve: {
        person: function(people, $stateParams) {
          return people.find(function(person) { 
            return person.id === $stateParams.personId;
          });
        }
      }
    }
  ]

  // Loop over the state definitions and register them
  states.forEach(function(state) {
    $stateProvider.state(state);
  });
});

但是,在创建大型应用程序时,我们可能会有很多状态。通常,状态调用一个调用模板的组件,并可能使用服务等等。

因此,我用来在单独的js文件中定义状态,就像我对组件,模板,服务一样......

所以我可能有例如:

  • home.stt.js(状态)
  • home.srv.js(服务用途)
  • home.cpt.js(对于组件)
  • home.html(供查看)

这是一个好习惯吗?或者最好在同一个文件中定义所有状态?

1 个答案:

答案 0 :(得分:1)

将它们拆分为单独的文件更具可读性,可理解性和组织性。大概你有一个很好的目录结构,因此主要区域会有自己的目录和子目录等。状态的配置文件可以进入它们以遵循相同的层次结构。

这是我自己从几个中型到大型项目的经验,其中结构对易用性非常重要。