如何使用Angular 5将枚举值发送给API?

问题描述 投票:0回答:1

嗨,我正在研究在Angular 5上开发的Web应用程序。我正在将数据发送回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);
        }); 

以下是合并数据后的saveData。

enter image description here

有人可以告诉我,我正确地做了什么,或者我错过了什么?以上产量预计一个?任何帮助,将不胜感激。谢谢。

angular enums
1个回答
0
投票

您无法设置打字稿枚举值,因为它是只读的。您可以通过创建对象文字来尝试以下备选方案,并在发布到服务器之前根据选择设置值

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;
            }
© www.soinside.com 2019 - 2024. All rights reserved.