Closed cipchk closed 6 years ago
早期为了快速成型引用了 angular2-schema-form 的基础逻辑,但过于复杂且数据流有些乱,这倒置了很多问题很难处理。
我们应该提供一种类似 ngrx 的机制使小部件数据应该通过 action 交给 from,由 from 统一校验与传递。而小部件唯一改变视觉的应该是单纯的若干特定类型所决定。
它应该是一个大容器,会解析 Schema 并渲染。当数据发生变化时应该重新校验 schema 并把错误分发给小部件。小部件产生的错误会影响到按钮及条件表单,除此之外不应该污染其它小部件的渲染。
关于重置
重置应该由 nz-sf 发起,而现在是由 PropertyGroup,虽然我们的 Schema 看起来始终从一个 Object 开始的,但这不是很好选择。
nz-sf
PropertyGroup
小部件应该是一种纯洁组件,甚至我们不应该包括一个 ControlWidget,而应该是一个单纯的接口的实现。
ControlWidget
相对应的异常视觉不应该依赖 FormControl 对象,nz-zorro-antd 有一个非常完善统一视觉样式,我们可以利用模板 nz-form-explain 统一渲染,这种方式会更可靠。
FormControl
nz-form-explain
最后一个简约的数据流如下:
补充下个人项目使用中遇到的功能需求: 1、开放按钮的自定义模板,比如按钮能放到底部工具栏。 2、widget 的 id 定义为 widget 的类型,个人感觉使用“type”表示更清晰。 3、fieldsets的实现
早期为了快速成型引用了 angular2-schema-form 的基础逻辑,但过于复杂且数据流有些乱,这倒置了很多问题很难处理。
我们应该提供一种类似 ngrx 的机制使小部件数据应该通过 action 交给 from,由 from 统一校验与传递。而小部件唯一改变视觉的应该是单纯的若干特定类型所决定。
nz-sf
它应该是一个大容器,会解析 Schema 并渲染。当数据发生变化时应该重新校验 schema 并把错误分发给小部件。小部件产生的错误会影响到按钮及条件表单,除此之外不应该污染其它小部件的渲染。
关于重置
重置应该由
nz-sf
发起,而现在是由PropertyGroup
,虽然我们的 Schema 看起来始终从一个 Object 开始的,但这不是很好选择。小部件
小部件应该是一种纯洁组件,甚至我们不应该包括一个
ControlWidget
,而应该是一个单纯的接口的实现。相对应的异常视觉不应该依赖
FormControl
对象,nz-zorro-antd 有一个非常完善统一视觉样式,我们可以利用模板nz-form-explain
统一渲染,这种方式会更可靠。最后一个简约的数据流如下: