Как отправить enum-значение в API, используя Angular 5? - PullRequest
0 голосов
/ 03 сентября 2018

Привет! Я работаю над веб-приложением, разработанным для Angular 5. Я отправляю данные обратно в API. Модель API выглядит следующим образом.

public partial class ResourceDTO
       {
        [JsonProperty("id")]
        public System.Guid Id { get; set; }

        [JsonProperty("state")]
        public State State { get; set; }
       }
public enum State 
{
      NotSelected = 0,
      Allowed = 1,
      Denied = 2
}

Я хочу отправить данные в API. Ниже мое перечисление определено в скрипте типа.

export enum State {
    NotSelected,
    Allowed,
    Denied 
}

В приведенной ниже функции я объединяю свои данные.

 data.forEach(element => {
            const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: State };

            if (element.id != undefined) {
                object.id = element.id;
            }
            if (element.checked == false) {
                object.state.NotSelected;
            }
            if (element.checked == true) {
                object.state.Allowed;
            }
            if (element.allow == false) {
                object.state.Denied;
            }
            saveData.push(object);
        }); 

Ниже приведены данные сохранения после объединения данных.

enter image description here

Может кто-нибудь сказать мне, правильно ли я делаю или я что-то упускаю? Над выходом ожидается один? Любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2018

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

https://basarat.gitbooks.io/typescript/docs/enums.html

 const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: {}};

var newState ={
"Allowed": element.checked,
"NotSelected":!element.checked,
"Denied":element.allow == false
}

object.state=newState;
 if (element.id != undefined) {
                object.id = element.id;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...