第一次尝试让我们读ngClass' docs(especifically object
部分):
对象 - 键时表达的价值评估板因为被添加CSS类达到真值,否则将被删除。
所以,把你的情况下,例如:
<nav [ngClass]="{
'navbar navbar-toggleable-md bg-primary fixed-top navbar-transparent': this.isHome,
'navbar navbar-toggleable-md bg-primary fixed-top': !this.isHome
}">
这意味着:
当 “家” 的计算结果为真,类导航栏,导航栏,可切换-MD, bg-primary,固定顶端和 navbar-transparent将被添加。
一旦“家”的计算结果为false,类导航栏,导航栏,可切换-MD,BG-小学,固定顶部将被删除,因为有添加这些类,如果home
计算结果为true
的条件。
对于深入的解释,我建议您检查issue#5763(comment)。
这就是说,解决你的问题是很容易的。您可以执行此:
<nav class="navbar navbar-toggleable-md bg-primary fixed-top"
[class.navbar-transparent]="this.isHome">
或者:
<nav class="navbar navbar-toggleable-md bg-primary fixed-top"
[ngClass]="{ 'navbar-transparent': this.isHome }">
此外,值得一提的是即使它可能使用模板不建议this.<property>
。它可能在未来的版本中被破解,因为它甚至没有记录。
您是否尝试从{{isHome}}'模板中查看'isHome'的值,以查看它是否相应地将值更改为您所在的页面? – crash