मुझे Angular में HTTP की समस्या है।
मैं सिर्फ GET
एक JSON
सूची चाहता हूं और इसे दृश्य में दिखाता हूं ।
सेवा वर्ग
import {Injectable} from "angular2/core";
import {Hall} from "./hall";
import {Http} from "angular2/http";
@Injectable()
export class HallService {
public http:Http;
public static PATH:string = 'app/backend/'
constructor(http:Http) {
this.http=http;
}
getHalls() {
return this.http.get(HallService.PATH + 'hall.json').map((res:Response) => res.json());
}
}
और HallListComponent
मैं getHalls
सेवा से विधि को बुलाता हूं :
export class HallListComponent implements OnInit {
public halls:Hall[];
public _selectedId:number;
constructor(private _router:Router,
private _routeParams:RouteParams,
private _service:HallService) {
this._selectedId = +_routeParams.get('id');
}
ngOnInit() {
this._service.getHalls().subscribe((halls:Hall[])=>{
this.halls=halls;
});
}
}
हालाँकि, मुझे एक अपवाद मिला:
TypeError: this.http.get (...)। नक्शा एक फ़ंक्शन नहीं है [अशक्त]
हॉल-center.component
import {Component} from "angular2/core";
import {RouterOutlet} from "angular2/router";
import {HallService} from "./hall.service";
import {RouteConfig} from "angular2/router";
import {HallListComponent} from "./hall-list.component";
import {HallDetailComponent} from "./hall-detail.component";
@Component({
template:`
<h2>my app</h2>
<router-outlet></router-outlet>
`,
directives: [RouterOutlet],
providers: [HallService]
})
@RouteConfig([
{path: '/', name: 'HallCenter', component:HallListComponent, useAsDefault:true},
{path: '/hall-list', name: 'HallList', component:HallListComponent}
])
export class HallCenterComponent{}
app.component
import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES} from "angular2/router";
import {RouteConfig} from "angular2/router";
import {HallCenterComponent} from "./hall/hall-center.component";
@Component({
selector: 'my-app',
template: `
<h1>Examenopdracht Factory</h1>
<a [routerLink]="['HallCenter']">Hall overview</a>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/hall-center/...', name:'HallCenter',component:HallCenterComponent,useAsDefault:true}
])
export class AppComponent { }
tsconfig.json
{
"compilerOptions": {
"target": "ES5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
Http
सेवा प्रेक्षण योग्य है
1.8.36
, जबकि एनजी 2 क्विकस्टार्ट गाइड (जैसा कि मैं यह लिखता हूं) का उपयोग कर रहा है "typescript": "^2.0.2"
। टीएस लंग को अपग्रेड करना। एक्सटेंशन और अपडेट के माध्यम से सेवा ने मेरे लिए चाल चली। जबकि यह अद्यतन स्थापित किया जा रहा था मैं इस एसओ उत्तर में आया था , जो उसी निष्कर्ष के साथ समाप्त होता है।