Attualmente non sono a conoscenza di un modo per eseguire una cattura nel templateUrl
.
Quello che possiamo fare, come soluzione, è effettuare una richiesta head
per verificare se il file esiste.
Quindi, il componente sarebbe simile a questa:
import {Component, View} from 'angular2/angular2';
let hasTemplate = function(template: string) {
var http = new XMLHttpRequest();
http.open('HEAD', template, false);
http.send();
return (http.status===200) ? template : 'error.html';
}
@Component({
selector: 'your-component'
})
@View({
templateUrl: hasTemplate('your-template.html')
})
export class YourComponent {
constructor() {
}
}
So che questa non è una soluzione ottimale. Ma per il momento penso che sia una soluzione facile che ti permetterà di fare un ripiego nel caso in cui il file modello non sia presente.
fonte
2016-01-29 17:30:36
Buona domanda! (; – Sasxa
potrebbe esserci qualche intercettatore 'http', che potrebbe aiutare a scoprire che c'è un errore durante il caricamento di qualsiasi cosa tramite il protocollo' http'. –
@PankajParkar Quello che mi piacerebbe avere era una sorta di ripiego in caso di un errore, supponendo che avessi un cruscotto e uno dei componenti non poteva essere reso, potrei usare un modello "statico" che dice "Errore", invece di "rompere" l'app. Probabilmente qualcosa come $ templateRequest in angular1. .. –