AngularJS transition to abstract state

I'm working on an application built with AngularJS that has two different states:

  1. App intro wizard
  2. App pages (with a Navigation template and nested views)

I want to default to State 1 the first time someone access the app, once done the wizard, continue on to the App pages, State 2.

My "app" state (State 2) is an abstract state because it has nested views. So I cannot transition to this state.

.config(function($stateProvider, $urlRouterProvider) {
$stateProvider

  .state('intro', {
    url: '/',
    templateUrl: 'templates/intro.html',
    controller: 'IntroCtrl'
  })

  .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/menu.html',
    controller: 'AppCtrl'
  })

  .state('app.playlists', {
    url: "/playlists",
    views: {
      'menuContent' :{
        templateUrl: "templates/playlists.html",
        controller: 'PlaylistsCtrl'
      }
    }
  });

  $urlRouterProvider.otherwise("/");

})

I've got the same problem with you, here is other post about abstract state: angularjs ui-router default child state and ui-sref

It did clearly explain why you are not able to access directly abstract state

It's bit late to reply this post, but hope it will help.

(Btw, this should be a comment)

(This should be a comment, but I don't have reputation to comment)

Can you post your html code for the app view? I think going straight to app/playlists should render your side menu that is in app, so maybe something is wrong with how you're rendering the view.

I have added $location service to the controller of the "intro" page and use the following to transit to app state which works for me.

$location.path('app/playlists');

The menu.html is loaded and navigated to playlists.