如何将后端返回值(数字)与下拉框label值(文字)匹配?

发布于 2022-09-13 01:15:53 字数 893 浏览 41 评论 0

后端返回0或者1的状态码,前端修改页面信息时,需要在下拉框nz-select中选中当前返回值代表的label。
下拉框的数据是写死的,ts中,定义一个list表示下拉框的数据

 List = [
    {
      label: '单次',
      value: '0',
      isLeaf: true,
    },
    {
      label: '周期',
      value: '1',
      isLeaf: true,
    },
  ];

用表单做的数值绑定

createForm() {
  planType: [后端值, [Validators.required]],
 });

html页面

<nz-form-item>
    <nz-form-label [nzRequired]="true" [nzFor]="'planType'">类型</nz-form-label>
    <nz-form-control nzHasFeedback>
      <nz-select nzShowSearch nzPlaceHolder="类型" id="planType" formControlName="planType">
        <nz-option *ngFor="let item of List" [nzLabel]="item.label" [nzValue]="item.value"></nz-option>
      </nz-select>
    </nz-form-control>
  </nz-form-item>

如何将后端返回值(数字)与下拉框label值(文字)匹配?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哀由 2022-09-20 01:15:53

把0,1转成'0','1'就行了。

xxx.pipe(map(a => a.toString())).subscribe()
遗弃M 2022-09-20 01:15:53

参考这个例子,可以使用Vue过滤器, 将后端的字段映射到前端想要的值, 比如后端=ok, 前端=成功

Vue.filter('mapStr', (val)=>{  // val --- 后端值
    const $data = {
        'ok': '成功',
        'error': '失败'
    }
    return $data[val] 
})

//假设数据 data:["ok", 'error']

// 组件中使用
<div v-for="i in data">{{ i | mapStr }}</div> // 这时候就会把后端值替换成前端想要的值

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文