突出显示控制器AngularJS中的活动页面
Highlighting active page from within controller AngularJS
我遇到过许多形式的这些问题,但没有一个对我的情况足够具体。我有一个基本的AngularJS应用程序,其中部分相关的html是:
<nav class="navbar" ng-controller="NavController as nav">
<ul class="nav" ng-bind-html="pages"></ul>
</nav>
控制器定义为:
app.controller('NavController', ['$scope', '$sce', '$route', '$location', function($scope, $sce, $route, $location) {
pages = {
'home' : '#/',
'resume/cv' : '#/resume',
'publications' : '#/publications',
'contact' : '#/contact'
};
$scope.getClass = function(page) {
// if ($route.current.activetab == page)
// return 'active' ;
console.log(('/' + page) === $location.path());
if (('/' + page) === $location.path())
// return 'active';
return true;
else
return false;
};
$scope.listPages = function() {
ret = '' ;
for (key in pages) {
// ret += '<li><a href="' + pages[key] + '" ng-class="' + $scope.getClass(key) + '">' + key + '</a></li>' ;
ret += '<li><a href="' + pages[key] + '" ng-class="{active:' + $scope.getClass(key) + '}">' + key + '</a></li>' ;
// ret += '<li><a href="' + pages[key] + '" ng-class="{active: $route.current.activetab == ' + key + '">' + key + '</a></li>' ;
}
return ret
};
$scope.pages = $sce.trustAsHtml($scope.listPages()) ;
}]);
根据评论,您可以看到我已经尝试了ret
变量的几种风格。我可以使用class=" + $scope.getClass(page)
获得一个活动类,但当我单击其他链接时,它不会更新。我求助于ng-class
,但它似乎并没有把课程安排好。
如果需要,我可以提供额外的代码或输出。
您不应该使用ngBindHtml
,而应该使用ngRepeat
来渲染列表:
<nav class="navbar" ng-controller="NavController as nav">
<ul class="nav">
<li ng-repeat="(key, value) in pages">
<a ng-href="{{value}}" ng-class="{active: getClass(key)}">{{key}}</a>
</li>
</ul>
</nav>
其中pages
是作用域属性:
$scope.pages = {
'home' : '#/',
'resume/cv' : '#/resume',
'publications' : '#/publications',
'contact' : '#/contact'
};
相关文章:
- 如何使用angularjs构建交互式滚动着陆页
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- 使用 AngularJS 设置活动选项卡样式
- AngularJS:多页网站
- 返回上一页时,Javascript仍处于活动状态
- Json阵列的详细信息显示在三页的angularjs中
- 检测活动<李>用于jQuery转盘(分页)
- AngularJS单页应用程序中的Toggable选项卡
- 如何使用angularjs处理多页网站
- 用于分页的 AngularJS 自定义过滤器
- 在 AngularJS 中使用不同的母版视图页进行状态
- 如何使用 angularjs 使用 ngrepeat 和 bootstrap ui 创建分页
- AngularJS - 分页不渲染$scope.手表更换(包括代码笔)
- 如何从Laravel视图/模板目录提供单页AngularJS应用程序
- 一页angularjs的单独背景图像
- 其他人如何在活动页面的DOM中搜索元素
- 参数没有传递到下一页- AngularJS
- 登录一个单页angularjs web应用
- 多页 Angularjs 应用程序架构
- 多个母版页angularjs