diff --git a/modules/@angular/router/src/directives/router_link.ts b/modules/@angular/router/src/directives/router_link.ts
index 097636c4df..ad105077b4 100644
--- a/modules/@angular/router/src/directives/router_link.ts
+++ b/modules/@angular/router/src/directives/router_link.ts
@@ -133,7 +133,7 @@ export class RouterLink {
*/
@Directive({selector: 'a[routerLink]'})
export class RouterLinkWithHref implements OnChanges, OnDestroy {
- @Input() target: string;
+ @HostBinding('attr.target') @Input() target: string;
@Input() queryParams: {[k: string]: any};
@Input() fragment: string;
@Input() preserveQueryParams: boolean;
diff --git a/modules/@angular/router/test/integration.spec.ts b/modules/@angular/router/test/integration.spec.ts
index fe955ba078..f84e398153 100644
--- a/modules/@angular/router/test/integration.spec.ts
+++ b/modules/@angular/router/test/integration.spec.ts
@@ -998,6 +998,7 @@ describe('Integration', () => {
const native = fixture.nativeElement.querySelector('a');
expect(native.getAttribute('href')).toEqual('/team/33/simple');
+ expect(native.getAttribute('target')).toEqual('_self');
native.click();
advance(fixture);
@@ -2646,7 +2647,8 @@ function expectEvents(events: Event[], pairs: any[]) {
}
}
-@Component({selector: 'link-cmp', template: `link`})
+@Component(
+ {selector: 'link-cmp', template: `link`})
class StringLinkCmp {
}