remove $rootScope.$on("$stateChangeStart", function from .run; add it to mainContainer.controller

//!!$scope.actions.toState ? $state.go($scope.actions.toState) :
$window.location.reload(); //$state.reload()方法还有bug，不能重新实例化controller

//!!$scope.actions.toState ? $state.go($scope.actions.toState) :
$state.transitionTo($state.current, $stateParams, { reload: true,
inherit: false, notify: true });
//替代方法1，$state.reload()方法还有bug，不能重新实例化controller

!!$scope.actions.toState ? $state.go($scope.actions.toState) :
$state.go('.', {}, {reload: true});
//替代方法2，$state.reload()方法还有bug，不能重新实例化controller

//!!$scope.actions.toState ? $state.go($scope.actions.toState) :
$state.go($state.current, {}, {reload: true});
//替代方法3，$state.reload()方法还有bug，不能重新实例化controller

本来用$window.location.reload()方法，会刷新整个页面，因此监听$stateChangeStart事件必须在app.run中执行，如果放在mainContainer.controller中，会监听不到，因为监听代码$scope.on还没来得及执行；改用$state.reload()（目前有bug，不能重新实例化controller，因此用上述3种方法替代），就只刷新main.userinfo这个$state，mainContainer.controller中的监听一直存在，就可以重新实例化main.userinfo的controller，实现页面重载和controller重载。其中notify参数必须设置为true，才会广播$stateChangeStart
and $stateChangeSuccess events