Comments (16)
是要放在View
里做这个事情吗?下午会上好像是说Form
控件里面做
from ub-ria.
下午的结论是在View
做,使用Form
控件提供的数据
Form
控件作为一个普通的控件,他肯定不应该知道你的业务是有这种需求的,不会特别去支持,不然随着不同的业务一个控件就会非常庞大了
from ub-ria.
有道理,可能我下午听岔了。
from ub-ria.
晚上跟@Exodia @srhb18 讨论了实现方案,大家帮忙看看有没有什么问题
-
FormAction
的initBehavior
中添加// 保存一份最初的form表单内容到model,用于判断表单内容是否被更改 var initialFormData = this.view.getEntity(); this.model.set('initialFormData', initialFormData, { silent: true });
-
FormAction
的cancelEdit
中调用FormView
新添加的方法isFormDataChanged
判断表单数据是否发生变化 -
移除
FormModel
的isEntityChanged
方法
from ub-ria.
方法OK,应该没问题
留一下记录,ADM2.0中有以下需要修改
src/channel/FormModel.js
src/channelGroup/FormModel.js
src/company/FormModel.js
src/contact/FormModel.js
src/delivery/FormModel.js
src/manager/FormModel.js
src/setting/BindUnionModel.js
src/setting/ModifyMailModel.js
src/setting/ModifyNameModel.js
src/setting/ModifyPasswordModel.js
src/slot/BatchChannelFormModel.js
src/slot/BatchOrderFormModel.js
src/slot/FormModel.js
src/tool/creative/FlashFormModel.js
src/tool/creative/ImageFormModel.js
src/tool/creative/RichFormModel.js
src/tool/creative/TextFormModel.js
src/tool/template/FormModel.js
BESC中现在没有
from ub-ria.
这里顺便提一个问题,类似initialFormData
这种东西,放Model
也行,挂Action
下当属性也行的情况下,我们的判断标准和依据是啥?一概放Model
吗?
from ub-ria.
如果按照在 view 中添加 isFormDataChange 的方法来看,放在 model 会更方便,可以直接从 mode取原始数据判断。
from ub-ria.
initialFormData
是数据,虽然加入到model
中的方式怪异,但感觉放在Action
下不大合适,model
应该是最适合的去处吧
from ub-ria.
我觉得既然一开始初始数据是Action
拿了存起来的,判断相等还是交给Action
来做比较合适吧?让View
和Action
不用相互知道对方干了啥
from ub-ria.
isFormDataChanged
是否需要这点我也纠结,就两行代码,直接写到Action
里也没问题,应该没有要重写判等规则的需求吧
from ub-ria.
我觉得是需要的,从一个系统的角度看我们是一致的,但不保证有些系统永远要有提示,有些系统永远不想有提示,因此从通用的角度来说是要有这方法的
甚至,这方法应该保持向后的行为一致,默认是返回false
的,由我们业务系统中重写,以免其它项目升级依赖库后行为不一样了
from ub-ria.
丢给 Action 做数据变化判断也好,我看来数据相等的判断逻辑也属于业务相关,被重写的需求应该是有的
from ub-ria.
ok,那就提供isFormDataChanged
方法,默认返回false
。
现在有个新的问题,目前的保存initialFormData
的方法,当FormView
中有与表单内容有关的子Action
时,initBehavior
中获取的initialFormData
不是最终值,子Action
中的input
类型控件值获取不到。
from ub-ria.
关系到这个:ecomfe/er#74
所以这个issue要提前来完成吗?现在的情况是,我希望基础库中这个isFormDataChanged
是默认直接返回false
的,保持向后一致性,我们的项目来重写
那么这个控制在项目范围内,就是相对好办的,前期我们也没有复杂的表单,可以先忍一忍
from ub-ria.
要么先把计划中的issue完成,子Action
相关问题先不处理,等ecomfe/er#74 完成之后再更新这个issue的实现?
from ub-ria.
OK我觉得不错
from ub-ria.
Related Issues (20)
- UB-RIA
- ub-ria文档内容需求汇总 HOT 3
- UIView类中增加addUIExtensions方法的需求 HOT 2
- [FormView#getEntity]增加对嵌套属性名称的解构 HOT 2
- 3.0 Breaking changes HOT 4
- 增加一个 ControlProvider工厂获取控件类 HOT 6
- List的批量更新提示流程有问题 HOT 1
- 【ub-ria升级需求汇总】取消“抽屉弹出”的强制交互 HOT 12
- 【ub-ria升级需求汇总】取消“表单取消操作的确认弹层”的强制交互 HOT 2
- 【ub-ria升级需求汇总】列表中筛选相关 HOT 2
- 【ub-ria升级需求汇总】取消“布局变化监听”的强制配置 HOT 1
- 生成HTML的内容均使用模板来实现,减少JavaScript拼接字符串
- 移除所有样式
- BaseModel中的Typo
- ListView.js getSearchArgs HOT 7
- 有关defaultArgs的设计问题 HOT 2
- 修改列表行内command事件的处理方式
- 新的数据加载配置方法 HOT 2
- ListAction的查询过程可能丢失部分参数 HOT 8
- tpl.js支持ie10、9、8跨域加载模板 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ub-ria.