【问题标题】:How to show enum text values in Dropdown?如何在下拉列表中显示枚举文本值?
【发布时间】:2021-08-19 08:33:02
【问题描述】:

这是我的枚举值

export enum TaskCategory {
    Task = 0,
    Bug = 1,
}

html

                <div class="form-group">
                    <label class="col-form-label">Task Category <span class="text-danger">*</span></label>

                    <select class="select form-control" 
                        [class.invalid]="addTaskForm.get('taskcategory').invalid && addTaskForm.get('taskcategory').touched"
                        formControlName="taskcategory">
                        <option value="00000000-0000-0000-0000-000000000000">Select Task Category</option>
                        <option *ngFor="let state of states | keyvalue"  >{{state['value']}}</option>
                      

                    </select>
                    <div
                        *ngIf="addTaskForm.get('taskcategory').invalid && addTaskForm.get('taskcategory').touched">
                        <small
                            *ngIf="addTaskForm.get('taskcategory').invalid && addTaskForm.get('taskcategory').touched"
                            class="text-danger"> *Task Category is required</small>
                    </div>
                </div>

我只想显示枚举文本值?

以及如何在后端获取所选选项?

【问题讨论】:

    标签: angular angular10 angular11


    【解决方案1】:

    要在模板中使用枚举,您可以这样做:

    taskCategories: typeof TaskCategory = TaskCategory;
    

    对于数字枚举,您需要过滤掉数值。

    categoryKeys: string[] = Object.keys(this.taskCategories).filter(
      key => !isNaN(Number(this.taskCategories[key]))
    );
    

    更多详情请查看this answer

    要将选定的选项发送到后端,您需要使用 HttpClient。通常的方法是将其导入服务并执行类似的操作:

    sendData(payload) {
      return this.http.post(this.url, payload);
    }
    

    然后在你的组件中:

    // Todo: bind to a button
    sendData() {
      this.appService.sendData(this.selectedCategory).subscribe(res => {
        // handle response
      });
    }
    

    我建议阅读它here

    Working example

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2021-11-11
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 2011-04-11
      • 2012-05-17
      相关资源
      最近更新 更多