2015-10-18 166 views
0

我有一个网站设置与AngularJS和Ui路由器。Ui路由器嵌套状态显示:无

的Index.html

<body> 

    <a href="#">Home Page</a> 

<div ui-view></div> 

</body> 

的Javascript:

.config(function($stateProvider, $urlRouterProvider) { 

$stateProvider 
.state('baba', { 
url:"/", 
templateUrl: "baba.html" 
}) 
.state('icerik', { 
url: "/icerik/:ad", 
templateUrl: "icerik.html", 
controller: "mmgCtrl", 
}) 

.state('oku', { 
url: "/oku/:serix/:klasor", 
templateUrl: "oku.html", 
controller: "nbgCtrl" 
}) 

$urlRouterProvider.otherwise('/'); 

}) 

baba.html:

<div class="wanTohide> //div that want to hide when ui-sref clicked 

    <a ui-sref="oku">State oku</a> 
    <a ui-sref="icerik">State icerik</a> 

</div> 

- 当其中任何UI的SREF的点击我要隐藏或display:none到该div类与wanTohide。当然ui-sref点击它已将其内容加载到ui-view

- 我想功能Home Page按钮。 <a href="">Home Page</a>

回答

0

您可以通过$stateChangeStart来实现此目的。基本上,只要状态改变就会触发$stateChangeStart。代码:

app.js(其中您的应用程序定义):

app.run(run) //assuming app is a variable assigned 'angular.module('AppName', [])' 

function run($rootScope, $state) { 
    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ 
     if(fromState.name == 'oku'|| fromState.name == 'icerik') { 
      angular.element('.wantToHide').addClass('hidden'); 
     } 
    }) 
} 

CSS:

.hidden { 
    display: none; 
}