Измените имя переменной при публикации объекта на http angular 6 - PullRequest
0 голосов
/ 09 октября 2018
    export class ShopModel {
    public id: number;
    public name: string;
    public email: string;
    public phone: string;
    public website: string;
    public address: string;
    public gst_number: string;
    public pan_number: string;
    public tan_number: string;
    public plan_id: number;
    public status: number = 1;
    public users: UserModel[];
    public customers: CustomerModel[];
    public categories: CategoryModel[];
    public plan: PlanModel;

    public static getDummyModel(): ShopModel {
        return new ShopModel();
    }
}

Это моя модель данных

{
    "shop": {
        "name": "Develop Shop",
        "email": "sho3434p@develop.bs",
        "phone": "2343",
        "website": "dtewrtyty",
        "address": "rgtyyiuyouyip",
        "gst_number": "eytyw",
        "pan_number": "rywtywe",
        "tan_number": "ryeyru",
        "plan_id":1,
        "users_attributes": [{
            "email": "shop@develop.bs",
            "role": "user"
        }, {
            "email": "shop2@develop.bs",
            "role": "staff"
        }]
    }
}

Мне нужно передать этот объект JSON как HTTP-сообщение на сервер.

Для этого мне нужно изменить массив users в объекте данных на users_attributes при отправке.

Так что, пожалуйста, помогите мне, как я могу этого достичь.Я использую Angular 6 для этого

1 Ответ

0 голосов
/ 09 октября 2018

Примерно так должно работать (используя lodash).

let shopModel = ShopModel.getDummyModel();
let shopObject = {
  "name": shopModel.name,
  "email": shopModel.email
}

shopObject['users_attributes'] = [];

_.forEach(shopModel.users, user => shopObject.users_attributes.push({'email': user.email, 'role': user.role}));
...