0
以下代碼工作正常(屬性數據切換狀態)被正確設置爲活動和不活動。 @angular:如何構建一個指令來添加基於選定路線的屬性?
<a [routerLink]="['/home']" [attr.data-toggle-state]="router.isActive('/home', true) ? 'active' : 'inactive'">Home</a>
<a [routerLink]="['/admin']" [attr.data-toggle-state]="router.isActive('/admin', true) ? 'active' : 'inactive'">Home</a>
不過,我想創建具有相同功能的新指令。
我的打字稿指令代碼如下所示:
Directive({
selector: '[xDataToggleState]'
})
export class ToggleStateDirective {
@Input('xDataToggleState')
public route: string;
constructor(private router: Router, private activeRoute: ActivatedRoute, private el: ElementRef, private render: Renderer) {
this.toggle(this.route);
}
private toggle(route: string) {
if (this.route) {
this.render.setElementAttribute(this.el.nativeElement, 'data-toggle-state', this.router.isActive(this.route, false) ? 'active' : 'inactive');
}
}
}
和HTML的樣子:
<a routerLink]="['/home']" xDataToggleState="/home">Home</a>
然而,this.route永遠是不確定的?所以指令不起作用。