angular 字典值处理方法

    技术2022-07-10  117

    以基金产品中的提醒类型为例,某个提醒为“净值波动提醒”,后台要的值为“A”,前台要显示为“净值波动提醒”,可以在后台增删修改提醒类型。 相关字典值 提醒类型 REMIND_TYPE 产品类型 REMIND_FUND_TYPE

    转换嘛,最初想到的是用switch case,但后来发现能实现想要效果,但字典值就失去了意义。试想,如果在后台修改“净值波动提醒”对应的值为“B”,那前端代码中是不是还要手动去修改转换对应的代码?同理新增提醒类型也是,仍需要手动去维护前端代码。

    // html中“提醒类别”的select标签里添加事件 (ngModelChange)="typeChange()" // ts中 typeChange(){ // 所在位置getLoadListBody // sRemindType A,后端要的值 switch(this.getLoadListBody.sRemindType){ case 'A':this.getLoadListBody.sRemindTypeZh='净值波动提醒' break; } }

    所以最后采用的是以下方法:

    // 根据字典key查询value getValueByKey(key,dictionaryName){ let that = this; let info:any; switch(dictionaryName){ case 'REMIND_TYPE': // 提醒类型 info= _.filter(that.dictionaryList.REMIND_TYPE,(item:any)=>{ return item.sItemKey==key }) break; case 'REMIND_FUND_TYPE': // 产品类型 info= _.filter(that.dictionaryList.REMIND_FUND_TYPE,(item:any)=>{ return item.sItemKey==key }) break; } return info[0].sItemValue; }

    使用到该字典值时:

    // RemindTypeZh 净值波动提醒,前端显示的值 let RemindTypeZh = this.getValueByKey(this.getLoadListBody.sRemindType,'REMIND_TYPE');
    Processed: 0.010, SQL: 9