2016-04-08 101 views
1

嗨,我有一個問題,父母狀態不活躍時,孩子打電話。Angular UI路由器的父母狀態不活躍

我使用具有ui-sref-active功能的ui路由器。

這裏是我的路由器代碼:

.state('customers', { 
    abstract: true, 
    parent: 'app', 
    url: '/customers', 
    templateUrl: 'app/customer/parent.html', 
}) 
.state('customers.list', { 
    parent: 'customers', 
    url: '', 
    controller: 'customerCtrl as customer', 
    templateUrl: 'app/customer/index.html' 
}) 

.state('customers.birthday', { 
    parent: 'customers', 
    url: '/birthday', 
    templateUrl: 'app/customer/birthday.html', 
}) 

這裏是我的html:

<ul id="menu-sidebar"> 
    <li class="has_sub"> 
     <a ui-sref="customers.list" class="waves-effect" ui-sref-active="subdrop"> 
      <i class="fa fa-users"></i> <span> Customers</span> 
     </a> 
    </li> 
</ul> 

我使用NG重複,因爲有很多的菜單。

問題是當我撥打/customersui-sref-active工作正常。但是當撥打/customers/birthday時,ui-sref-active消失了。

這裏截圖如下:

1 2

任何意見,如何使它的工作?

在此先感謝!

回答

0

我終於解決了。

在我

app.run(['$rootScope', '$state', function($rootScope, $state) { 
    $rootScope.$on('$stateChangeStart', function(evt, to, params) { 
     if (to.redirectToChild) { 
     evt.preventDefault(); 
     $state.go(to.redirectToChild.state, params) 
     } 
    }); 
}]); 

app.config([ '$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise("/404"); 
    .state('customers', { 
     url: '/customers', 
     templateUrl: 'app/customer/parent.html', 
     redirectToChild: { 
       state: 'customers.list' 
      }, 
    }) 
    .state('customers.list', { 
     parent: 'customers', 
     url: '', 
     controller: 'customerCtrl as customer', 
     templateUrl: 'app/customer/index.html' 
    }) 

    .state('customers.birthday', { 
     parent: 'customers', 
     url: '/birthday', 
     templateUrl: 'app/customer/birthday.html', 
    }) 
}]); 
0

可能是因爲你的嵌套路線。嘗試是這樣的:

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { 
$stateProvider 
.state('exampleState', { 
    url: '/example', 
    abstract: true, 
    templateUrl: 'templates/example/root-view.html', 
    controller: 'ParentCtrl' 
    }) 

    .state('exampleState.games', { 
    url: '/games', 
    views: { 
     'stats-games':{ 
     templateUrl: 'templates/example/firstpage.html', 
     controller: 'PageOneCtrl' 
     } 
    } 
    }) 
    .state('exampleState.sesaons', { 
    url: '/seasons', 
    views: { 
     'stats-games':{ 
     templateUrl: 'templates/example/secondpage.html', 
     controller: 'PageTwoCtrl' 
    } 
    }) 
}); 
+0

它不工作。我試過你的方式。謝謝 – ssuhat

0
.state('home', { 
     url: '/home', 
     abstract: true, 
     templateUrl: 'templates/home.html' 



    }) 
    .state('home.main', { 
     url: '', 
     templateUrl: 'templates/main.html' 



    }) 
    .state('home.owner', { 
     url: '/owner', 
     templateUrl: 'templates/owner.html' 

    }) 
+0

對不起,但它真的會逗號衝突與ui-sref-active?因爲我通常在這樣的對象之後加逗號。我已經嘗試刪除它,它的運氣不好:) – ssuhat

+0

請嘗試這種方式,不需要添加perent屬性 –

+0

我刪除我的父屬性,但仍然不工作 – ssuhat

相關問題