ang*_*ner 7 angularjs angular-ui-router
我正在使用AngularUI路由器,我正在尝试嵌套/子链接.
一切正常,但我如何在联系人选项卡中选择/激活链接?
基本上,我需要能够在加载联系页面时选择/主动联系一个链接.目前它不会出于某种原因阅读,controlleroneCtrl除非我点击链接联系一个.
angular
.module ('myApp', ['ui.router'
])
.config (['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise ('/summary');
$stateProvider.
state ('summary', {
url: '/summary',
templateUrl: 'summary.html',
controller: 'summaryCtrl'
}).
state ('about', {
url: '/about',
templateUrl: 'about.html',
controller: 'aboutCtrl'
}).
state ('contact', {
url: '/contact',
templateUrl: 'contact.html',
controller: 'contactoneCtrl'
})
// Sub page
.state('contact.one',{
url: '/contact.contactone',
templateUrl: 'one.html',
controller: 'contactoneCtrl'
})
// Sub page
.state('contact.two',{
url: '/contact.contacttwo',
templateUrl: 'two.html',
controller: 'contacttwoCtrl'
});
}]);
Run Code Online (Sandbox Code Playgroud)
Plunker:http://plnkr.co/edit/DWjp5M6kJt2MyBrasfaQ?p=preview
Nip*_*ria 10
有一个更快的方法来做到这一点.只需使用ui-sref-active="active"属性而不是ui-sref.
一个例子:
<ul>
<li ui-sref-active="active">
<a ui-sref="state">State 1</a>
<li>
<ul>
Run Code Online (Sandbox Code Playgroud)
当状态处于活动状态时,列表项会使类处于活动状态.如果您想要一个活动状态或多个类的不同类,只需按如下所示添加它
<ul>
<li ui-sref-active="active so-active super-active">
<a ui-sref="state">State 1</a>
<li>
<ul>
Run Code Online (Sandbox Code Playgroud)
我使用在state根范围上公开的模式并state.current.name在模板中使用.我证明这种全球曝光是合理的,因为它是应用程序级别的关注点.如果您的导航指令具有隔离范围,则需要将其传入,但这并不重要.
在实践中,我认为这对我们来说非常好.
看起来像这样:
JavaScript的
app = angular.module ('myApp', ['ui.router']);
app.controller('MainController', function($scope, $state){
$scope.state = $state;
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<nav>
<ul>
<li ng-repeat="tab in tabs" ng-class="{active: state.current.name === tab.id}>{{tab.name}}</li>
</ul>
</nav>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11518 次 |
| 最近记录: |