当存在或不存在路由参数时,启用或禁用链路
Enable or disable links when a route parameter is present or isn't present
我的路由看起来像这样(删除了when()
中的第二个参数,使其更容易阅读):
app.config(function($routeProvider, $locationProvider){
// Prepare for html5 mode
$locationProvider.hashPrefix('!');
$locationProvider.html5Mode(true);
// Setup routing
$routeProvider.when('/dashboard/main', {
}).when('/dashboard/website/:id/clicks', {
}).when('/dashboard/website/:id/uploads', {
}).when('/dashboard/website/:id/forms', {
}).when('/dashboard/website/:id', {
}).otherwise({
redirectTo: '/dashboard/main'
});
});
然后我有导航链接,然后我想在:id
不存在时禁用它。
<ul class="nav nav-pills nav-stacked">
<!-- always active -->
<li>
<a href="/dashboard/main"><i class="glyphicon glyphicon-home"></i> Home</a>
</li>
<!-- active only if :id is set -->
<li>
<a href="/dashboard/clicks"><i class="glyphicon glyphicon-hand-up"></i> Clicks</a>
</li>
...
</ul>
我如何使第二项在:id
存在时启用自己,在:id
不存在时禁用自己?
你可以在控制器内部使用$routeParams并检查:
$scope.Options = $routeParams.id !== 'undefined'
并将视图更改为
<li ng-show='Options'>
<a href="/dashboard/clicks"><i class="glyphicon glyphicon-hand-up"></i> Clicks</a>
</li>
可以将$routeParams
注入控制器
app.controller('yourControllerName', ['$routeParams', '$scope', function($routeParams, $scope){
$scope.isActive = inactive;
if($routeParams.id){
$scope.isActive = active;
}
}]);
在你的标记上,
<li data-ng-class="isActive">
<a href="/dashboard/clicks"><i class="glyphicon glyphicon-hand-up"></i> Clicks</a>
</li>
然后使用CSS
.inactive
和.active
类提供合适的样式
相关文章:
- 如何通过Javascript启用链接按钮最初设置为Enable=false
- 链路翻转时的 DIV 背景图像交换
- 涡轮链路触发事件链,但随后发生正常导航(Rails 4)
- Javascript函数在活动选项卡上启用链接
- 如何在反应路由器上的链路中引用状态
- D3.js力导向图保持恒定的链路距离
- 在触摸设备上的悬停状态后启用链接,而不会影响正常滚动
- 节点和集群以及使用D3的集群到集群链路
- 使用jquery禁用和启用链接
- 链路衰落的奇怪行为
- 周五下午4点禁用链接,周日早上7点启用链接
- 手机号码链路检测
- 显示链路去激活的消息
- 增加从节点a到节点b的链路之间的距离
- 只选择链路参数
- 如何切换活动链路
- 如何设置活动链路指示灯位置
- 如何在反应中通过链路路由器获取程序值
- 替换多个链路
- 当存在或不存在路由参数时,启用或禁用链路