title: AngularJS UI Router $state reload child state only
body: <p>I am using UI router for tabs of a main menu as well as for links within one of the states (users).  The users state has a list of users and when a user is clicked, I want to reload the child state only, but it is reloading both the child state and the parent state (users).</p>
  
  <p>Here's my code:</p>
  
  <pre><code>    app.config(function ($stateProvider, $locationProvider, $urlRouterProvider) {
      $urlRouterProvider.otherwise("/");
      $locationProvider.html5Mode(true);
      $stateProvider
          .state('home', {
              abstract: true,
              template: '&lt;div ui-view=""&gt;&lt;/div&gt;',
              controller: 'HomeController as homeCtrl'
          })
          .state('users', {
              parent: 'home',
              url: '/users',
              templateUrl: '/User/Index',
              controller: 'UserController as userCtrl',
          })
          .state('users.createUser', {
              templateUrl: '/User/CreateUser',
              controller: 'CreateUserController as cuCtrl'
          })
          .state('users.editUser', {
              templateUrl: '/User/EditUser',
              controller: 'EditUserController as euCtrl',
              resolve: {
                  userInfo: function (contextInfo, userData) {
                      return userData.get(contextInfo.getUserKey());
                  }
              }
          })
          .state('users.addWebItemsForUser', {
              templateUrl: '/User/AddWebItemsForUser',
              controller: 'UserWebItemsController as uwiCtrl'
          })
          .state('users.addReportsForUser', {
              templateUrl: '/User/AddReportsForUser',
              controller: 'UserReportsController as urCtrl'
          })
          .state('users.userGroups', {
              templateUrl: '/User/UserGroups',
              controller: 'UserGroupController as userGroupCtrl'
          })
          //.state('users.logInWebApp', {
          //    template: '&lt;h3&gt;Logging into web app&lt;/h3&gt;',
          //    resolve: {
          //        user: function() {
          //            return {
          //                //companyId: contextInfo.getCustomerKey()
          //                //userId:
          //                //password:
          //            }
          //        }
          //    },
          //    controller: function() {
          //        // need company code, username and password of user then need to open window with webapp url (will that work?) - do we still want to add this functionality?
          //    }
          //})
          .state('links', {
              url: '/links',
              templateUrl: '/Link/Index',
              controller: 'LinkController as linkCtrl'
          })
          .state('onlrpts', {
              url: '/onlineReports',
              templateUrl: '/OnlineReport/Index',
              controller: 'OnlineReportController as onlRptCtrl'
          })
          .state('reports', {
              url: '/customerReports',
              templateUrl: '/CustomerReport/Index',
              controller: 'CustomerReportController as custRptCtrl'
          });
  })
  .config(function($provide) {
      $provide.decorator('$state', function($delegate, $stateParams) {
          $delegate.forceReload = function() {
              return $delegate.go($delegate.$current.name, $stateParams, {
                  reload: true,
                  inherit: false,
                  notify: true
              });
          };
          return $delegate;
      });
  });
  </code></pre>
  
  <p>This is the function in my parent controller (UserController) that is called when a user is clicked:</p>
  
  <pre><code>            this.userTreeClick = function(e) {
          contextInfo.setUserKey(e.Key);
          contextInfo.setUserName(e.Value);
          userCtrl.userKey = e.Key;
          $state.forceReload();
      };
  </code></pre>
  
  <p>So say I was in the users.userGroups state, when I click on another user, I want only the users.userGroups state to be reloaded.  Is this possible?  I have looked for an answer via Google and here at StackOverflow, but I haven't found anything that is exactly like what I am trying to do.  When I break to check the $state.$current.name - the name is correct - users.userGroups, but it reloads everything instead of just the child state.  Any help is very much appreciated!</p>