Ho cercato di importare il fornitore http in un servizio, ma sto ottenendo il seguente errore:angolare 2 HTTP "Impossibile risolvere tutti i parametri per 'AppService'"
Cannot resolve all parameters for 'AppService'(?). Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'AppService' is decorated with Injectable.
Ecco alcuni frammenti di codice:
<script src="~/es6-shim/es6-shim.min.js"></script>
<script src="~/systemjs/dist/system-polyfills.js"></script>
<script src="~/angular2/bundles/angular2-polyfills.js"></script>
<script src="~/systemjs/dist/system.src.js"></script>
<script src="~/rxjs/bundles/Rx.js"></script>
<script src="~/angular2/bundles/angular2.dev.js"></script>
<script src="~/angular2/bundles/http.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
map: { 'rxjs': 'RCO/rxjs' },
packages: {
RCO: {
format: 'register',
defaultExtension: 'js'
},
'rxjs': {defaultExtension: 'js'}
}
});
System.import('RCO/Areas/ViewOrganization/AngularTemplates/boot')
.then(null, console.error.bind(console));
boot.ts
import {bootstrap} from 'angular2/platform/browser'
import {HTTP_PROVIDERS} from 'angular2/http'
import 'rxjs/add/operator/map'
import {AppComponent} from 'RCO/Areas/ViewOrganization/AngularTemplates/app.component'
import {AppService} from 'RCO/Areas/ViewOrganization/AngularTemplates/app.service'
bootstrap(AppComponent, [HTTP_PROVIDERS, AppService]);
app.service.ts
import {Injectable} from 'angular2/core';
import {Http, Response} from 'angular2/http';
import {Observable} from 'rxjs/Rx';
@Injectable()
export class AppService {
constructor(private http: Http) { }
// Uses http.get() to load a single JSON file
getTableData() {
return this.http.get('...').map((res: Response) => res.json());
}
}
Sto provando a chiamare un controller sul server per caricare un file JSON in una tabella di dati. Cose piuttosto semplici, ma il modo in cui sto caricando i moduli Http sembra essere sbagliato. Qualsiasi aiuto sarà molto apprezzato.
stai usando il compilatore dattiloscritto? se no, questo sarebbe il caso http://stackoverflow.com/a/35350172/2435473 –
che lo ha risolto ... Grazie – ddpdoj
Questo dovrebbe funzionare così. Ma se non si usa TypeScript ma solo ES6 (nessun tipo di supporto per i parametri del metodo), è necessario specificare ulteriori metadati su Angular2 riguardo a cosa iniettare. In questo caso, @ Pankaj's descrive esattamente come farlo ;-) –