Stavo lavorando a una demo Angular2 con più componenti. La demo bootstraps con AppComponent, dove ho importato altri componenti nel template html di AppComponent. Ho avuto successo nell'impostare la demo e vedere il contenuto di AppComponent, ma non è riuscito a caricare altri componenti.non riescono a individuare il template html del comando importato in Angular2
Ecco il codice di esempio dei miei componenti angular2
app.component.html
<div id="map">
<navigator></navigator>
</div>
app.component.ts
import {Component, View} from 'angular2/core';
import {NavigatorComponent} from '../components/navigator/navigator.component'
@Component({
selector: 'app'
})
@View({
templateUrl: './app/app.component.html',
directives: [NavigatorComponent]
})
export class AppComponent { }
navigator.component.html
<input type="text">
navigat or.component.ts
import {Component, View} from 'angular2/core';
@Component({
selector: 'navigator'
})
@View({
templateUrl: './components/navigator/navigator.component.html'
})
export class NavigatorComponent { }
Quando ho creato il server e cercato di vedere l'applicazione, ho avuto il seguente errore
"NetworkError: 404 Not Found - http://localhost:3000/components/navigator/navigator.component"
e
Error: XHR error (404 Not Found) loading http://localhost:3000/components/navigator/navigator.component
Error loading http://localhost:3000/components/navigator/navigator.component as "../components/navigator/navigator.component" from http://localhost:3000/app/app.component.js
Ovviamente, il server ha cercato trova un navigator.component, ma non esiste. Tuttavia, quando ho provato http://localhost:3000/components/navigator/navigator.component.html, riesco a vedere la pagina con una casella di testo.
Quindi il problema sembrava essere l'estensione html mancante, ma non avevo idea di come fosse successo.
Apprezzerò qualsiasi suggerimento e risposta per risolvere il problema. Grazie in anticipo.
Se si vuole provare pienamente il bug, si prega di andare a pronti contro termine del progetto (https://github.com/haoliangyu/angular2-leaflet-starter) ed effettuare le seguenti operazioni:
rimuovere il commento della linea 12 a public_src/app/app.component .TS
istituito l'applicazione
andare a localhost: 3000 e controllare l'errore
Aggiornamento:
Questo problema è stato risolto resistendo l'altro componente nella configurazione SystemJS, come
System.config({
defaultJSExtension: true,
packages: {
'app': {
format: 'register'
},
'components/navigator': {
format: 'register'
}
}
});
Questo ha aiutato l'app a localizzare altri componenti :)
come stai ospitando il tuo server? con sincronizzazione del browser? –
Ho usato il pacchetto [lite-server] (https://www.npmjs.com/package/lite-server). Secondo il suo file di dipendenza, immagino di si. –