首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 10 reactive form -在表单显示后更新复选框数组

Angular 10 reactive form -在表单显示后更新复选框数组
EN

Stack Overflow用户
提问于 2021-02-12 17:46:08
回答 2查看 57关注 0票数 0

我有一个Angular (10)反应式表单,其中包含一个复选框列表

表单中的数据可以在表单显示后更新,但我找不到使用'setValue‘更新复选框的方法。如果我使用'setValue‘来推送布尔值,我会得到“期望的字符串”错误。

有什么建议吗?

表单的一部分如下所示...

代码语言:javascript
复制
 <div id="states" class="in-column" formGroupName="states">
            <h3 class="card-body-title">States</h3>
            <div style="margin-top: 10px">
              <smart-button class="flat">All</smart-button>
              <smart-button class="flat">None</smart-button>
            </div>
            <div>
              <smart-check-box formControlName="stateOpen">Open</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="stateWIP">WIP</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="statePending">Pending review</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="stateOnhold">On hold</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="stateSuspended">Suspended</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="stateWaiting">Waiting for</smart-check-box>
            </div>
            <div>
              <smart-check-box formControlName="stateDelegated">Delegated</smart-check-box>
            </div>

将数据推入表单的方法的一部分如下所示...(‘hasState’方法返回一个'boolean‘值)

代码语言:javascript
复制
    this.filterForm.get('states').setValue({
      stateOpen: data.stateFilter.hasState(GdTaskWorkflowState.open),
      stateWIP: data.stateFilter.hasState(GdTaskWorkflowState.wip),
      statePending: data.stateFilter.hasState(GdTaskWorkflowState.pendingReview),
      stateOnhold: data.stateFilter.hasState(GdTaskWorkflowState.onHold),
      stateSuspended: data.stateFilter.hasState(GdTaskWorkflowState.suspended),
      stateWaiting: data.stateFilter.hasState(GdTaskWorkflowState.waitingFor),
      stateDelegated: data.stateFilter.hasState(GdTaskWorkflowState.delegated)
    });
EN

回答 2

Stack Overflow用户

发布于 2021-02-13 23:18:27

尝试将属性名称设置为字符串。例如:

代码语言:javascript
复制
 this.filterForm.get('states').setValue({
      'stateOpen': data.stateFilter.hasState(GdTaskWorkflowState.open),...}

或者,尝试在[]中包装formControlName。

票数 0
EN

Stack Overflow用户

发布于 2021-02-15 05:19:53

已发现问题-“”与反应式表单不兼容。将此标记更改为标准复选框,一切工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66169523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档