在AngularJS中为多个菜单项使用相同的状态

时间:2015-04-13 03:39:19

标签: angularjs state

我正在尝试使用“同一状态”来管理所有菜单项,并且状态未正确刷新。

我的主页有以下四个部分。

    <div ui-view="navbar" ng-cloak="" class="codrops-top"></div>
    <div ui-view="leftnavbar"></div>
    <div class="well" ui-view="content">
    </div>
    <div class="footer">
    </div>

我已将Angular Module配置为使用

处理顶部导航栏和左侧导航栏
$stateProvider.state('site', {
        'abstract': true,
        views: {
                'navbar@': {
                        templateUrl: 'scripts/components/navbar/navbar.html',
                        controller: 'NavbarController'
                    }
                ,
                'leftnavbar@'   :{
                        templateUrl:'scripts/components/leftnavbar/leftnavbar.html',
                        controller: 'LeftNavbarController'
                }   
        }

我正在尝试刷新视图&#34;内容&#34;单击左侧导航项时。

我的Leftnav控制器具有以下处理项单击的处理程序。

$scope.manageEntity = function(code) {
        // I am passing the code of the item clicked using a Service.
        ElementModel.code = code;
        $scope.toggle();
        $state.go('instance',{reload: true});
    };

以下是我用于定义州&#39;实例&#39;

的代码
.config(function ($stateProvider) {
    $stateProvider
    .state('instance',{
        parent: 'site',
        url: '/instance',
        views: {
            'content@': {
                templateUrl: 'scripts/app/entities/instance/instances.html',
                controller: 'InstanceController'
            }
        }

第一次调用InstanceController时,即使我点击其他左侧导航项,视图也不会被刷新。控制权已达到$ state.go(&#39; instance&#39;,{reload:true});怎么没有进入InstanceController。

不确定我做错了什么..

感谢您的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

在你的处理函数$ scope.manageEntity&#34;对$ state.go的调用可能应该像

$state.go('instance',{},{reload: true});