Angular 2/4中不同路由下为body标签动态添加类的实现问题
在Angular 2/4中给body标签按路由添加类的正确方法
我来帮你搞定这个问题~你原来用*ngIf的写法确实不对,*ngIf是用来控制元素显示隐藏的,不是用来绑定CSS类的。在Angular 2/4里有两种简单又靠谱的方式实现你的需求:
方法一:使用
[ngClass]指令(推荐)
这是Angular官方推荐的动态绑定类的方式,语法清晰易懂。你只需要给body标签绑定ngClass,传入一个对象,键是要添加的类名,值是判断条件:<body [ngClass]="{'abc': router.url === '/login'}">记得要在你的根组件(比如
AppComponent)里注入Router服务,这样才能拿到当前路由信息:import { Router } from '@angular/router'; constructor(private router: Router) { }方法二:直接绑定单个类(更简洁)
如果只需要根据条件添加一个类,这种方式更直接,用[class.类名]的语法绑定布尔值:<body [class.abc]="router.url === '/login'">同样需要在组件里注入
Router,确保能访问到router.url。
注意事项
别忘记在你的根模块(比如AppModule)里导入RouterModule并配置路由,不然Router服务会无法正常工作哦~
内容的提问来源于stack exchange,提问作者Bilal Safdar
相关产品推荐
相关产品推荐

