<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
<script src="http://unpkg.com/angular-ui-router@1.0.0-rc.1/release/angular-ui-router.js"></script>
<script src="app.js" type="text/javascript"></script>
<body ng-app="app">
  <ui-view></ui-view>
</body>
</html>
app = angular.module('app', [
    'ui.router'
  ]);
app.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/');
  $stateProvider
    .state('index', {
      url: '/',
      redirectTo: 'a',
      controller: function ($scope, $state) {
        $scope.state = $state;
      }
    })
    .state('a', {
      parent: 'index',
      url: 'a',
      views: {
        '': {
          templateUrl: 'a.html'
        },
        '@a': {
          template: '<p>a</p>'
        },
        'sidebar@a': {
          templateUrl: 'menu.html'
        }
      }
    })
    .state('a.b1', {
      url: '/b1',
      redirectTo: 'a.b1.c',
      template: '<div ui-view></div>',
      data: {
        menu: [
            {url: '.b1.c', title: 'c'},
            {url: '.b1.d', title: 'd'}
          ]
      }
    })
    .state('a.b1.c', {
      template: '<p>b1.c</p>'
    })
    .state('a.b1.d', {
      url: '/d',
      template: '<p>b1.d</p>'
    })
    .state('a.b2', {
      url: '/b2',
      redirectTo: 'a.b2.c',
      template: '<div ui-view></div>',
      data: {
        menu: [
            {url: '.b2.c', title: 'c'},
            {url: '.b2.d', title: 'd'}
          ]
      }
    })
    .state('a.b2.c', {
      template: '<p>b2.c</p>'
    })
    .state('a.b2.d', {
      url: '/d',
      template: '<p>b2.d</p>'
    })
});
<a ui-sref=".b1">b</a>
<a ui-sref=".b2">c</a>
<div ui-view="sidebar"></div>

<div>
<a ng-repeat="i in state.current.data.menu" ui-sref="{{i.url}}" ng-bind="i.title"></a>
</div>

<ui-view></ui-view>