Angular2将JSON映射到带有注入器的类

时间:2017-04-21 12:59:26

标签: angular typescript serialization angular2-services

我有以下课程:

import { HttpClient } from '../services/http.service'
export class Project {
    constructor(
        private http: HttpClient
    ){
    }
    @JsonProperty('name')
    title: string;
    id:string;
    
    public getTitle(): string  {
        return this.title;
    }

    public getId(): string {
        return this.id;
    }

    public removeProject() {
        return this.http.delete("deleteurl"+this.id).map(() => {
            return true;
        })
    }

}

我想像这样反序列化json对象:

import { JsonConvert } from "json2typescript";
getProjects():Observable<Project[]> {
        return this.http.get("getprojects").map((res:Response) => {
            var array: Project[] = [];
            for (let entry of res.json().files) {
                array.push(JsonConvert.deserializeObject(entry, Project));
            }
            return array;
        })
    }

如果我想将json映射到我的类,我会得到一个错误,他们无法创建一个新的类项目(),因为在类项目中注入了http服务

你们会怎么做?什么是最佳做法?

1 个答案:

答案 0 :(得分:0)

我想在HttpClient中是getProjects方法,你应该在服务文件中导入Injectable

   import { Injectable } from '@angular/core';
   import { Http, Response, Headers } from '@angular/http';
   import { Observable } from 'rxjs/Observable';

这是在构造函数中的类Project中进行依赖注入