서비스 클래스를 사용하여 JSON 데이터를 가져 오려고합니다. 서비스 클래스각도 2 메서드가 관찰 가능을 구독하지 않습니다.
import { Injectable } from '@angular/core';
import { Http, HttpModule, Response } from '@angular/http';
import { GeneralTab } from './generalTab';
import 'rxjs/Rx';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class GeneralTabService {
constructor(private _http : Http) {
console.log("Http call");
}
getStatus(): Observable<any> {
return this._http.get('http://samd.server.lan.at/taskmanagement/rest/taskconfigs/IND?language=EN&access_token=200')
.map((res:Response) => <GeneralTab[]>res.json())
.do(data => console.log("All: " + JSON.stringify(data)))
.catch(this.handleError);
}
private handleError (error: any) {
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
return Observable.throw(errMsg);
}
}
Component 클래스
import { Component, OnInit } from '@angular/core';
import {GeneralTab} from "./generalTab";
import {GeneralTabService} from "./generalTab.service";
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'general-tab',
templateUrl: '/general.component.html',
providers : [GeneralTabService]
})
export class GeneralComponent implements OnInit{
title = 'Serving data from General Component';
errorMessage: any;
status: GeneralTab [];
mode = 'Observable';
constructor (private generalService: GeneralTabService) {
this.status = [];
}
ngOnInit() {
console.log("Started");
this.generalService.getStatus().subscribe(
(status: any) => this.status = status,
(error: any) => this.errorMessage = error
);
console.log(this.status);
}
}
GeneralTab 클래스
export class GeneralTab {
constructor(public recipientId : string,
public recipientName: string,
public recipientFullname: string,
public ouId:String,
public ouName:String,
public institute:number,
public shortName:String,
public status:String)
{
}
}
I 콘솔에 표시하는 수도 있었죠 (데이터 => CONSOLE.LOG ("모두 :"+ JSON .stringify (data)))이 저에게 JSON 데이터를받습니다.
{ "subjectsConfig": [{ "subject": "클라이언트 데이터 유지 관리", "미리 선택": false, "initialDueDate": "2016-11- 24 ","actionConfigs ": [{"action ":"SEND ","수신자 ": ["사용자 ": {"recipientId ":"BD27A4F5923FCA13 ","recipientName ":"ABTABT ","recipientFullname ":"ABTABT ... ","ouName ":"0015 ", ....
구독중인 데이터가 상태 배열에 할당되어 있지 않으며"상태 "배열이 비어 있습니다. 이 데이터를 테스트 용 상태 변수의 배열로 원합니다. 어떻게 내가 가질까?