Je suis nouveau sur Angular. Je commence par ver. 2.
Je dois créer un lien vers un file://...
URL. J'ai essayé normal href
:
Remarque: app
est un objet modèle du Web qui traite des applications.
<a target="_blank" href="file://{{app.outputPath}}/index.html">no link here</a>.
Cela ne fonctionne pas - le lien est là, avec l'URL correcte, mais Angular semble bloquer l'événement d'une manière ou d'une autre. Pourquoi?
J'ai donc vu ng-href
mais c'est pour Angular 1.x. Et il n'y a pas de *ngHref
d'après ce que je peux dire. Ce n'était donc qu'un essai naïf:
<a target="_blank" *ngHref="file://{{app.outputPath}}/index.html">over a directive</a>.
J'ai également vu quelque chose avec le routage, mais qui ne semble être destiné qu'aux liens internes de l'application:
<a [router-link]="['/staticReport', {path: app.outputPath}]">see the report</a>.
app.component.ts:
@RouteConfig([
...
{path:"/staticReport/:path", redirectTo: 'file:// ???? ' }
])
Comment créer un lien externe?
Je suppose que app
est asynchrone. Vous pouvez contourner cela en utilisant opérateur Elvis :
<a target="_blank" href="file://{{app?.outputPath}}/index.html">no link here</a>.
pour ne pas rompre la liaison lorsque Angular essaie de le résoudre avant que app
ait réellement une valeur.
Original Cela a fonctionné par exemple:
@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';
}
}
En fait, votre premier exemple fonctionne aussi bien
<a target="_blank" href="file://{{outputPath}}/index.html">no link here</a>