AngularJS - 单个 'ui-sref-active' 中的多个 'ui-sref'
AngularJS - Multiple 'ui-sref' in single 'ui-sref-active'
HTML:
<!-- Order -->
<li ui-sref-active="active">
<a ui-sref="order" class="main_link">
<i class="fa fa-shopping-cart"></i>Order
</a>
<a ui-sref="order/create"><span class="plus">+</span></a>
<div class="clearfix"></div>
</li>
我想在 <li>
上添加 class="active"
。
每当点击<a ui-sref="order/create"><span class="plus">+</span></a>
这个,那个时候class="active"
加上<li>
。
但是
点击
<a ui-sref="order" class="main_link"><i class="fa fa-shopping-cart"></i>Order</a>
那个时候class="active"
没加上<li>
.
我们将不胜感激。
ui-router
目前的实施方式无法做到这一点。您无法指定将针对哪个特定 ui-sref
激活 ui-sref-active
。话虽这么说,应该更容易调整您的模板以包装这些链接,这样您就可以每个 ui-sref-active
每个 ui-sref
。至少比调整 ui-router
行为容易。
app.js
var app = angular.module('plunker', ['ui.router']);
app.config([ '$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/home/flow");
$stateProvider.state("home", {
url : '/home',
templateUrl : 'home.html',
}).state("contact", {
url : '/contact',
template : 'contact',
});
}]);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
index.html
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<li class="top" ui-sref-active="heaader_active">
<a ui-sref="home"><i class="fa fa-cloud-upload"></i> Home</a>
<a ui-sref="contact"><i class="fa fa-cloud-upload"></i> contact</a>
</li>
<ui-view/>
</body>
</html>
style.css
/* Put your css in here */
.heaader_active {
background: red;
}
更多细节检查Here
HTML:
<!-- Order -->
<li ui-sref-active="active">
<a ui-sref="order" class="main_link">
<i class="fa fa-shopping-cart"></i>Order
</a>
<a ui-sref="order/create"><span class="plus">+</span></a>
<div class="clearfix"></div>
</li>
我想在 <li>
上添加 class="active"
。
每当点击<a ui-sref="order/create"><span class="plus">+</span></a>
这个,那个时候class="active"
加上<li>
。
但是
点击
<a ui-sref="order" class="main_link"><i class="fa fa-shopping-cart"></i>Order</a>
那个时候class="active"
没加上<li>
.
我们将不胜感激。
ui-router
目前的实施方式无法做到这一点。您无法指定将针对哪个特定 ui-sref
激活 ui-sref-active
。话虽这么说,应该更容易调整您的模板以包装这些链接,这样您就可以每个 ui-sref-active
每个 ui-sref
。至少比调整 ui-router
行为容易。
app.js
var app = angular.module('plunker', ['ui.router']);
app.config([ '$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/home/flow");
$stateProvider.state("home", {
url : '/home',
templateUrl : 'home.html',
}).state("contact", {
url : '/contact',
template : 'contact',
});
}]);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
index.html
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<li class="top" ui-sref-active="heaader_active">
<a ui-sref="home"><i class="fa fa-cloud-upload"></i> Home</a>
<a ui-sref="contact"><i class="fa fa-cloud-upload"></i> contact</a>
</li>
<ui-view/>
</body>
</html>
style.css
/* Put your css in here */
.heaader_active {
background: red;
}
更多细节检查Here