我正在使用AngularUI的路由,我想做一个,ng-class="{active: current.state}"
但不确定如何在这样的指令中准确检测当前状态。
Answers:
更新:
这个答案是针对较老版本的Ui-Router的。对于较新的发行版(0.2.5+),请使用helper指令ui-sref-active
。详细信息在这里。
原始答案:
在控制器中包含$ state服务。您可以将此服务分配给您范围内的属性。
一个例子:
$scope.$state = $state;
然后在模板中获取当前状态:
$state.current.name
要检查状态是否为当前活动状态:
$state.includes('stateName');
如果包含状态,则此方法返回true,即使它是嵌套状态的一部分。如果您处于嵌套状态,user.details
并检查了$state.includes('user')
,则返回true。
在您的课程示例中,您将执行以下操作:
ng-class="{active: $state.includes('stateName')}"
如果您使用的是ui-router,请尝试$ state.is();。
您可以这样使用它:
$state.is('stateName');
根据文档:
$ state.is ...与$ state.includes类似,但仅检查完整的州名。