2017-04-05 199 views
1

在角度ui路由器tutorial中,所有狀態都在同一個js文件中定義。Angularjs ui路由器狀態定義

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文件來定義狀態,同爲我組件,模板,做服務,...

所以我可以有例如:

  • 家.stt.js(用於狀態)
  • home.srv.js(服務)
  • home.cpt.js(對於成分)
  • home.html的(用於視圖)

這是一個很好的做法嗎?或者最好是在同一個文件中定義所有狀態?

+0

在同一個文件中定義的所有狀態都不好 – Akashii

+0

哈哈埃迪,你再次=)我真的很想知道你心中是怎麼回事。你的方法是「不同的」:P – lin

回答

1

它更具可讀性,易於理解和組織,可以將它們拆分爲單獨的文件。據推測,你有一個很好的目錄結構,所以主要領域將有自己的目錄和子目錄等,你的國家配置文件可以進入他們遵循相同的層次結構。

這是我自己從幾個中型到大型項目的經驗,其中結構對於易用性如此重要。