2017-01-26 29 views
0

私は以下の設定を持っています。コードを重複せずに、よりきれいにする方法がありますか?同じコントローラと異なる状態を解決します

ありがとうございました!

.state('info', { 
    url: '/info/:id', 
    templateUrl : 'templates/pages/info.html', 
    controller : 'singlePage', 
    resolve: { 
     pageData: function(getData, $stateParams) { 
      var params = $stateParams; 
      params.type = this.self.name; 
      return getData.getPageData(params.type, params) 
     } 
    } 
}) 
.state('news', { 
    url: '/news/:id', 
    templateUrl : 'templates/pages/news.html', 
    controller : 'singlePage', 
    resolve: { 
     pageData: function(getData, $stateParams) { 
      var params = $stateParams; 
      params.type = this.self.name; 
      return getData.getPageData(params.type, params) 
     } 
    } 
}) 
.state('event', { 
    url: '/event/:id', 
    templateUrl : 'templates/pages/event.html', 
    controller : 'singlePage', 
    resolve: { 
     pageData: function(getData, $stateParams) { 
      var params = $stateParams; 
      params.type = this.self.name; 
      return getData.getPageData(params.type, params) 
     } 
    } 
}) 

答えて

2
function createState(name) { 
    return { 
     url: '/' + name + '/:id', 
     templateUrl : 'templates/pages/' + name +'.html', 
     controller : 'singlePage', 
     resolve: { 
      pageData: function(getData, $stateParams) { 
       var params = $stateParams; 
       params.type = this.self.name; 
       return getData.getPageData(params.type, params) 
      } 
     } 
    } 
} 

.... 

.state('info', createState('info')) 
.state('news', createState('news')) 
.state('event', createState('event')) 
+0

本当に良いアイデア!ありがとうございました... –

関連する問題