typescript कोणीय 2 HTTP "AppService 'के लिए सभी मानकों को हल नहीं कर सकता"




angular systemjs (3)

मैंने http प्रदाता को किसी सेवा में आयात करने का प्रयास किया, लेकिन मुझे निम्न त्रुटि मिल रही है:

'AppService' (?) के लिए सभी पैरामीटर को हल नहीं कर सकता। सुनिश्चित करें कि सभी पैरामीटर इंजेक्ट के साथ सजाए गए हैं या वैध प्रकार की टिप्पणियां हैं और 'AppService' इंजेक्शन के साथ सजाया गया है।

यहां कुछ कोड स्निपेट हैं:

<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());
    }

}

मैं अंततः एक JSON फ़ाइल को डेटा तालिका में लोड करने के लिए सर्वर पर नियंत्रक को कॉल करने का प्रयास कर रहा हूं। बहुत सीधी चीजें, लेकिन जिस तरह से मैं एचटीपी मॉड्यूल लोड कर रहा हूं वह गलत लगता है। किसी भी प्रकार के मदद की बहुत सराहना की जाएगी।


ऐसा करने का एक और तरीका, जो भविष्य में कुछ टाइपिंग बचाता है:

अपने tsconfig.json में compilerOptions.emitDecoratorMetadata=true जोड़ें

सरल tsconfig.json का उदाहरण होगा:

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  }
}

ऐसा लगता है कि आप js को फ़ाइलों को पार करने के लिए typescript कंपाइलर का उपयोग नहीं कर रहे हैं, उस स्थिति में आपको घटक @Inject अंदर किसी भी निर्भरता को इंजेक्शन @Inject समय @Inject इंजेक्ट का उपयोग करने की आवश्यकता है।

import {Injectable, Inject} from 'angular2/core';
import {Http, Response} from 'angular2/http';
import {Observable} from 'rxjs/Rx';

@Injectable()
export class AppService {
    constructor(@Inject(Http) private http: Http) { }
    // Uses http.get() to load a single JSON file
    getTableData() {
        return this.http.get('...').map((res: Response) => res.json());
    }
}

मेरे पास एक ही समस्या थी, और मेरे लिए समस्या यह थी कि मैं app.module.ts में import { HttpModule } from '@angular/http' app.module.ts





angular2-injection