由于数据库中的NULL字段导致的Angular表单的问题 - 近在眼前的岔路口我却要绕地球一圈才能进入

  • 数据库中的NULL数据
    图片描述
  • Angular 中声明了自定义类型
    图片描述

    保证这里的属性名称和DB中表的字段名称一致

  • Angular 中向后端请求数据
    图片描述

    通过console.log()打印出来的结果集是:
    图片描述

    可以看到在数据库表中为NULL的字段反应到数组的对象中都没有了对应的属性

  • Angular 表单
    图片描述

    那么我通过这个方式:this.expandForm.setValue({...val[0]});,给表单对象赋值报错:
    图片描述

    是由于数组val中的对象没有属性oordercode
    这个问题要怎么解决?

  • 下面介绍我的解决方法
    图片描述

    然后从后端请求来数据后要加工下
    图片描述

    通过上面的方法加工后,可以在所有属性都有的情况下把DB端存在的值赋值过来
    以达到这样的目的:DB端有值则填充,DB端NULL值则Angular端的对象的属性也是NULL
    那么以后就可以愉快的用:{...newData} 进行赋值了。
    感觉好累啊,还有别的实现方法么?或者是我一开始就走错了?
    欢迎联系QQ:409223171,请注明:null

阅读 2.9k
1 个回答

数据库字段最好不要有null,每个字段给一个默认值。比如:mysql的表的字段定义

  `currency_desc` varchar(100) NOT NULL DEFAULT '' COMMENT 'xxxx',
  `days` int(11) NOT NULL DEFAULT '0' COMMENT 'xxxxxx',
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进