【发布时间】:2016-08-25 08:56:16
【问题描述】:
我想扩展内置的routerLink 指令来创建我自己的指令customRouterLink。
我只是创建了一个扩展 RouterLinkWithHref 的类:
@Directive({
selector: 'a[customRouterLink]'
})
export class CustomLinkDirective extends RouterLinkWithHref {
constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy) {
super(router, route, locationStrategy);
}
@Input()
set customRouterLink(data: any[]|string) {
console.log("custom directive input", data);
}
}
我正在尝试创建此指令的实例:
<a [customRouterLink]="'http://www.google.com'">custom link</a>
导致以下错误的原因:
Can't bind to 'customRouterLink' since it isn't a known property of 'a'.
但是,如果我从指令定义中删除 extends RouterLinkWithHref,它会起作用。
示例 plunker:
-
CustomLinkDirective extends RouterLinkWithHref- Shows error above -
CustomLinkDirective未扩展RouterLinkWithHref- Directive created without error
【问题讨论】:
-
你最后解决了吗?正在考虑做类似的事情
标签: angular angular2-directives