以角度2扩展routerLink?

时间:2016-07-11 12:16:09

标签: typescript angular angular2-routing angular2-directives angular2-router3

如何从Angular Router v3扩展[routerLink]指令,以便我自己包装一些自定义功能?我已经看了RouterLinkWithHref指令,看起来这就是我要扩展的内容,所以我制作了这个:

ExtendedRouterLinkDirective

import {Directive, Input} from '@angular/core';
import {RouterLinkWithHref} from "@angular/router";
import {Model} from "../Classes/Model.class";

@Directive({
    selector: 'a[extendedRouterLink]'
})
export class ExtendedRouterLinkDirective extends RouterLinkWithHref {
    @Input('extendedRouterLink') model : Model;

    // Future custom logic
}

我试着像这样使用它:

<a [extendedRouterLink]="model">

我将它包含在我的组件的directives数组中:

...
directives: [ROUTER_DIRECTIVES, ExtendedRouterLinkDirective],
...

然而,我收到以下运行时错误:

  

“模板解析错误:无法绑定到'extendedRouterLink',因为它不是已知的本机属性”

如果我从我的指令中删除extends RouterLinkWithHref ,则无误地运行。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我需要同样的东西。使用您的信息,我可以使其正常运行。这是缺少的内容:

Range("D" & X).EntireRow.Delete

父routeLink指令期望this.href和this.routerLink保留DOM属性中的数据。现在看起来像这样:

@Input() mgiRouterLink: string ngOnInit() 

ngOnInit() {
    this.href = this.routerLink = this.mgiRouterLink  
}