web-dev-qa-db-ja.com

Angular 2形式のJSON形式へのシリアル化

私のAngular 2フォームを作成し、APIに送信するために送信されたデータをJSON形式に変換するのに少し苦労しています。この例:$.fn.serializeObject = function()http://jsfiddle.net/sxGtM/3/
この例の唯一の問題は、コードがJQueryで記述されていることですが、厳密にangular 2.を使用しようとしています。角に非常に新しい。

9
Tristan C

FormGroupを使用している場合は、getRawValue()関数を使用して、JSON.stringify()を使用してシリアル化できるオブジェクトを返すことができます。

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder } from '@angular/forms';
import { Http } from '@angular/http';

@Component({
    selector: 'my-component',
    templateUrl: 'my-component.component.html'
})
export class MyComponent implements OnInit {

    form: FormGroup;

    constructor(private fbuilder: FormBuilder,
                private http: Http) { }

    ngOnInit(){
        this.form = this.fbuilder.group({
            name: '',
            description: ''
        });
    }

    sendToAPI(){
        let formObj = this.form.getRawValue(); // {name: '', description: ''}

        let serializedForm = JSON.stringify(formObj);

        this.http.post("www.domain.com/api", serializedForm)
            .subscribe(
                data => console.log("success!", data),
                error => console.error("couldn't post because", error)
            );
    }
}
20

JSON.stringify(form.value)を使用できます:

submit() {
  let resource = JSON.stringify(this.form.value);

  console.log('Add Button clicked: ' + resource);

  this.service.create(resource)
    .subscribe(response => console.log(response));
}

結果はChrome DevTools: Result of console.log

4
Mahesh Nepal

JavascriptオブジェクトのJSON表現を提供するJSON.stringify(object)を探しています。

次に、POSTこれを、サーバーへの組み込みHTTPサービスを使用して実行できます。