我不确定这在 Angular 中是如何实现的。我想在路由更改时添加和删除 CSS 类。我正在尝试显示和隐藏垂直菜单。目前我正在使用 ui-route。任何建议或示例链接将不胜感激,也欢迎对我的问题采取不同方法的任何其他建议
最佳答案
最简单有效的方法:
angular.module(...).run(function($rootScope, $state) {
$rootScope.$state = $state;
});
<div ng-if="$state.contains('someState')">...</div>
如果菜单有很多绑定(bind),这将删除 DOM,这将提高性能。
但是,我经常告诉人们考虑利用命名 View 进行导航:
<body>
<nav ui-view="nav"></nav>
<div class="container" ui-view></div>
</body>
$stateProvider.state('home', {
views: {
'nav@': {
templateUrl: 'nav.html'
}
'': {
// normal templateUrl and controller goes here.
}
}
});
最酷的部分是子状态可以覆盖和控制要使用的导航文件,甚至可以设置在导航和内容之间共享数据的解析和 Controller 。无需指令/服务!
最后,您还可以执行以下操作:
<nav ng-show="$state.contains('somestate')"></nav>
<nav ng-class="{someClass:$state.contains('somestate')}"></nav>
或者 checkout ui-sref-active
我的所有建议主要假设您正在使用 UI-Router,因为它是最好的!
关于angularjs - 在 Angularjs 中添加/删除路由更改的 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825618/