2016-06-15 3 views
1

Я работаю на угловом 2 проекта, который требует от меня, чтобы создать пользователя с деталями адреса, как показано нижеУгловое 2 - Создать вложенный объект JSON

{ "address": { 
"addition": null, 
"city": "Eindhoven", 
"housenumber": 12, 
"street": "Streetname"}, 
"email": "[email protected]", 
"password": "", 
"username": "YourName"} 

Когда я получаю объект пользователя, приведенный выше пример является результат. Чтобы POST пользовательский объект обратился к концу, мне нужно создать JSON с той же структурой.

Я могу отобразить детали этого файла JSON, когда я его получу. Я создал два класса:

import {Address} from "./Address"; 
/** 
* Created by Adjoa on 6/14/2016. 
*/ 
export class User { 
    name:string; 
    username:string; 
    email:string; 
    address:Address; 



    constructor(name:string, username:string, email:string, address:Address) { 
     this.name = name; 
     this.username = username; 
     this.email = email; 
     this.address = address; 
    } 

    public static createEmptyUser():User{ 
     return new User("","","",null); 
    } 
} 

мне нужна помощь в создании пользователя, который имеет адрес прежде чем отправить его в API.

+0

Ну, передайте адрес вместо null в конструктор User. Какова конкретная проблема? –

+1

Эй, вы должны были отредактировать свой [предыдущий вопрос] (http://stackoverflow.com/questions/37814716/angular-2-write-a-nested-json-object), вместо того, чтобы удалять и переназначать его с небольшой модификацией. –

ответ

0

Если определить

usermodel = new User('','','',Address) 

вне 'createEmptyUser' и просто вернуть

JSON.stringify(this.usermodel) 

внутри него, то JSON придет в форму.

+0

спасибо. Но не могли бы вы объяснить немного дальше? –

+0

import {Address} из «./Address»; /** * Создано Adjoa 14.06.2016. */ export class Пользователь { имя: строка; имя пользователя: string; email: string; Адрес: Адрес; конструктор (имя: строка, имя пользователя: строка, адрес электронной почты: строка, адрес: адрес) { this.name = name; this.username = имя пользователя; this.email = email; this.address = address; } usermodel = new Пользователь ('', '', '', Address); public static createEmptyUser(): User { return JSON.stringify (this.usermodel); }} – Jelena

+0

Это работает, если новый пользователь имеет форму для представления: https://angular.io/docs/ts/latest/guide/forms.html – Jelena

Смежные вопросы