Как создать ссылку на внешний URL в Angular 2

Я новичок в Angular. Я начинаю с Вер. 2.
Мне нужно связаться с file://... URL-адрес. Я пробовал нормально href:

Примечание: app является модельным объектом интернета, который имеет дело с приложениями.

<a target="_blank" href="file://{{app.outputPath}}/index.html">no link here</a>.

это не работает-ссылка есть, с правильным URL, но угловой, кажется, блокирует событие каким-то образом. Почему?

Я видел ng-href но это для углового 1.х. И нет *ngHref от что я могу сказать. Так что это была просто наивная попытка:

<a target="_blank" *ngHref="file://{{app.outputPath}}/index.html">over a directive</a>.

также я видел что-то с маршрутизацией, но это, похоже, предназначено только для внутренних ссылок в приложении:

<a [router-link]="['/staticReport', {path: app.outputPath}]">see the report</a>.

app.component.ts:

@RouteConfig([
    ...
    {path:"/staticReport/:path", redirectTo: 'file://  ???? ' }
])

Как создать внешнюю ссылку?

1 ответов


предполагаю app назначается async. Вы можете обойти это, используя оператор Элвис:

<a target="_blank" href="file://{{app?.outputPath}}/index.html">no link here</a>.

чтобы не нарушать привязку, когда Angular пытается разрешить ее до app на самом деле имеет значение.

Оригинал Это сработало, например:

@Component({
  selector: 'my-app',
  template: `
  <h2>Hello {{name}}</h2>
  <a target="_blank" [href]="'file://' + outputPath + '/index.html'">no link here</a>
`
})
export class App {
  outputPath:string = 'www.google.com';

  constructor() {
    this.name = 'Angular2';
  }  
}

Plunker

на самом деле, ваш первый пример работает нормально

<a target="_blank" href="file://{{outputPath}}/index.html">no link here</a>

Plunker