6

Nella mia applicazione Angular JS, ho 2 visualizzazioni - v1 e v2 e 1 controller - appCtrl. router UIUI router stesso controller per più stati

Ho configurato come di seguito

  .state('profile.v1', { 
      url: '/v1', 
      templateUrl: 'v1.html', 
      controller: 'appCtrl' 
     }) 
      .state('profile.v2', { 
      url: '/v2', 
      templateUrl: 'v2.html', 
      controller: 'appCtrl' 
     }) 

Ho 2 funzioni in appCtrl - FV1 e FV2.

Voglio eseguire fv1 quando viene chiamato il percorso '/ v1', fv2 quando viene chiamato il percorso '/ v2'.

Qualcuno può suggerire?

risposta

3

Iniettare $state nel controller, e verificare $state.current.name - Dovrebbe essere profile.v1 o profile.v2, a seconda di quale stato si è attualmente in

3

Un altro modo si può fare questo con una sola dichiarazione dello stato è:

.state('profile.detail', { 
     url: '/:version', 
     templateUrl: function($stateParams){    
     return $stateParams.version +'.html'; 
    }, 
     controller: 'appCtrl' 
}) 

Quindi iniettare $ stateParams nel controller e controllare $stateParams.version

Problemi correlati