Ich versuchte, den http-Provider in einen Dienst zu importieren, aber ich bin immer folgende Fehlermeldung:Angular 2 HTTP „lösen können nicht alle Parameter für‚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.
Hier sind einige Code-Schnipsel:
<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());
}
}
Ich versuche einen Controller auf dem Server aufzurufen, um eventuell eine JSON-Datei in eine Datentabelle zu laden. Ziemlich einfache Sachen, aber die Art, wie ich die Http-Module lade, scheint falsch zu sein. Jede Hilfe wird sehr geschätzt.
verwenden Sie Typescript-Compiler? wenn nein dann wäre das der Fall http://stackoverflow.com/a/35350172/2435473 –
Das hat es behoben ... Danke – ddpdoj
Das sollte so funktionieren. Wenn Sie jedoch nicht TypeScript, sondern nur ES6 (keine Typunterstützung für Methodenparameter) verwenden, müssen Sie Angular2 zusätzliche Metadaten bezüglich der zu injizierenden Elemente angeben. In diesem Fall beschreibt der @ Pankaj genau, wie man das macht ;-) –