如何根据使用Angular2发出的发布请求的响应来呈现输出

时间:2016-04-29 05:33:14

标签: javascript typescript angular

目前我有一个登录弹出窗口,所以当用户输入电子邮件ID和密码并进行服务器调用时。我如何根据收到的回复做出反应。早些时候,当我使用javascript时,我是按照以下方式完成的:

import-parent

在这样做时,这被称为:

[_login.titleLabel setFont:[UIFont systemFontOfSize:10]

如何使用angular2和Typescript实现相同的功能?

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要使用Angular2 http客户端发出POST请求,并使用Observable subscribe方法来详细说明响应。

这是发出POST命令的服务类的示例

import {Injectable} from 'angular2/core';
import {Http, Headers, RequestOptions, Response} from 'angular2/http';
import {Environment} from '../settings/environment.service';
import {BackEndService} from '../app/backEnd.service';

@Injectable()
export class BackEndRestService extends BackEndService {

    constructor(private _http: Http, private _environment: Environment) {
        super();
    }

    authorize(inAccessCode: string) {
        let myUrl = this._environment.baseRestServicesUrl + 'authorize';
        let options = this.getOpionsForPost();
        let jsonString = JSON.stringify({_accessCode: inAccessCode});
        return this._http.post(myUrl, jsonString, options)
                                .catch(this.handleError)
    }

private handleError (error: Response) {
    return Observable.throw(errorText || 'Server error');
}

    private getOpionsForPost() {
        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        return new RequestOptions({headers: headers});
    }
}

以下是调用服务的代码

this._backEndService.authorize(this._user.accessCode)
                .subscribe(
                    data => {
                        let retJson = data.json();
                        if (retJson.code == 'OK') {  // do stuff
                            } else {
                                // manage the situation when the server responds KO
                    },
                    err => {
                        // manage errors;
                    },
                    () => console.log('Authorization Complete')
                );

我希望这会有所帮助