javascriptangularjsangular-ui-routersingle-page-applicationangular-ui-router-extras

UI router same controller for multiple states


In my Angular JS application, I have 2 views - v1 and v2 and 1 controller - appCtrl.

I have configured UI router as below

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

I have 2 functions in appCtrl - fv1 and fv2.

I want to execute fv1 when route '/v1' is called, fv2 when route '/v2' is called.

Can somebody suggest?


Solution

  • Inject $state into the controller, and check $state.current.name - It should be profile.v1 or profile.v2, depending on what state you're currently in