gpt4 book ai didi

angularjs - 在 Angularjs 中添加/删除路由更改的 CSS 类

转载 作者:行者123 更新时间:2023-11-28 09:17:59 25 4
gpt4 key购买 nike

我不确定这在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com