提问者:小点点

ngClass没有看到通过服务订阅更新的变量


我试图规避routerLinkActiveOptions精确:true,以允许我将一个活动类放在一个链接上,该链接是root加上一个id:site.com/: id

显然,这对RouterLinkActive不起作用,因为/将匹配每个路由。所以我有一个我订阅的服务来报告当前的url和params,它非常适合字符串插值,但是当我尝试解释指令中的变量时,它被忽略了。只是想知道为什么当变量更改时模板会更新,但依赖变量的逻辑不会得到重新评估。

%div {{url}}
.tab-group.tab-group-rosters
  %a.tab.tab-roster(routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" routerLink="/" [ngClass]="url === 'roster' ? 'active' : ''")

^此代码适用于页面加载,但不适用于后续导航。但是,div的内容按预期更新。

我尝试将url设为可观察并通过|async进行管道传输,但它抱怨了。

我还在处理订阅的函数中尝试了this. ref.detectChange();,但这不起作用。

有人能告诉我当url更改时重新运行模板逻辑的公认方法吗?


共1个答案

匿名用户

嗯,所以,原来同一链接上的routerLinkActive="active"在捣乱。也许它在ngClass设置它后删除了“active”。看起来如果我决定使用它,我必须将类设置为完全手动模式。