如何从api获取对象并将其映射到角度模型?

时间:2018-06-26 15:24:22

标签: angular asp.net-web-api angular5

我想从我的api中获取模型。

为此,我使用以下方法:

    [HttpGet]
    public MyModel GetModel()
    {
        MyModel model = new MyModel() { ... };

        return model;
    }

如何获取角度的模型结果以及如何将MyModel映射到角度模型?

我有以下内容:

getModel() {
    var url = '/MyController/GetModel/';
    this.http.get(url)
        .map((data: Response) => {
            return data.json() as MyModel;
        })
        .toPromise().then(x => {
            this.myModel = x;
        })
}

我在组件的ngOnInit中调用。

但是我遇到一个错误:

Uncaught (in promise): SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

我的角度要求出了什么问题?

2 个答案:

答案 0 :(得分:0)

http.get采用通用 所以你可以这样做。

  getModel() {
        var url = '/MyController/GetModel/';
        this.http.get<MyModel>(url).toPromise().then(x => {
                this.myModel = x;
        });
    }

除非您角度的模型与api中的模型不同

答案 1 :(得分:0)

我知道它是这样工作的:

getModel() {
    var url = '/MyController/GetModel/';
    return this.http.get(url)
        .map((data: Response) => {
            return data.json();
        }).toPromise().then(x => {
            this.myModel = new MyModel(x);
        })
}

MyModel必须具有接受json字符串的构造函数。