6

In meiner Angular JS-Anwendung habe ich 2 Ansichten - v1 und v2 und 1 Controller - appCtrl.UI-Router gleichen Controller für mehrere Zustände

Ich habe konfiguriert UI-Router, wie unten

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

Ich habe 2 Funktionen in appCtrl - FV1 und FV2.

Ich möchte fv1 ausführen, wenn die Route '/ v1' aufgerufen wird, fv2, wenn die Route '/ v2' aufgerufen wird.

Kann jemand vorschlagen?

Antwort

3

Inject $state in die Steuerung und überprüfen $state.current.name - Es sollte profile.v1 oder profile.v2 sein, je nachdem, in welchem ​​Zustand Sie sind momentan in

3

Eine weitere Möglichkeit, dies mit einem Staat Erklärung tun kann, ist:

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

Dann injizieren Sie $ stateParams in den Controller und überprüfen Sie $stateParams.version

Verwandte Themen