帖子
帖子
用户
博客
课程
12
返回列表 发新帖
143
帖子
2
勋章
4万+
Y币
BIP318932 · 2023-3-13 16:16
跨域是指invokeFunc调API不用考虑跨域,而单独发起请求可能会遇到跨域问题

后端函数里肯定是调用三方接口   从前端函数请求才会有跨域
143
帖子
2
勋章
4万+
Y币
BIP318932 · 2023-3-13 16:36平台受众广,考虑的肯定比我个人更多,低代码确实也不错,比如yonql,好用~
但从最近的个人使用情况看,还有许多需要完善的地方。比如
beforeSave可以更改数据,但beforeSetDataSource不行

个人有个人的感受 后端开发会觉得yonql不好用。更改数据使用afterSetDataSouce,
beforeWorkFlow中return false 可以拦截住右方侧边栏弹出,只是从消息中拦截不了。
19
帖子
1
勋章
186
Y币
BIP318932 · 2023-3-13 16:36平台受众广,考虑的肯定比我个人更多,低代码确实也不错,比如yonql,好用~
但从最近的个人使用情况看,还有许多需要完善的地方。比如
beforeSave可以更改数据,但beforeSetDataSource不行

说的太好了,学习成本加上各种bug让人心累
12
帖子
0
勋章
118
Y币
BIP689080 · 2023-3-14 14:13说的太好了,学习成本加上各种bug让人心累

同感,有时甚至让人想放弃
12
帖子
0
勋章
118
Y币
11,记录一个到目前为止耗时最长的问题
我在window对象上挂了个对象,代码:window.oldData=JSON.parse(JSON.stringify(viewModel.getAllData()));这个oldData设计是深拷贝,只读,但后期发现oldData中的某个属性值变了(注是某个属性,不是整个oldData,这是最容易误导人的地方),一再确认不是自己误操作后寻求用友帮助好几次,但都没发现问题。因为是某个属性值变了,所以一开始我陷入了误区,去找这个属性值是在哪句代码后变的,最后锁定updateRow函数,但这是系统方法,于是还看了下源码…………但,这是误区!!!
后来用友的韩老师把问题锁定在对象引用上,这算是成功的第一步,跳出了前面的误区,接下来是找出引用在哪里更改,韩老师提供一个方法,Object.defineProperty去追踪,但韩老师认为是oldData被更改,所以一直无果……
后来我想,既然是引用问题,那么如果两个变量指向同一地址,那么任何一个变更都会导致最终值的变更。所以我去找哪里引用了oldData的属性值,最终确定在setData这个方法。
这个方法会遍历属性,然后赋值,但对于子表,是直接给rows属性赋值,而rows是引用,和oldData子表数据是同一地址,这就是问题所在!!!同样的setDatasource也存在这个问题!
所以如果你这样赋值给子表,viewModel.getGridModel().setDataSource(Data);Data变,子表模型数据也变,但UI并不会刷新,反过来子表数据改变,Data也会变!
所以较好的方法是,viewModel.getGridModel().setDataSource(JSON.parse(JSON.stringify(Data)))
12
帖子
0
勋章
118
Y币
12,关于详情页面生命周期
customInit->....->afterLoadData 这是大家都知道的,但是afterLoadData触发时,附件不一定加载完成!单个附件加载完成事件,filelist附件DidMount。全部附件加载完成目前没有官方方法!如果有工作流还有工作流!
大概完成顺序(非严谨测试):非附件->afterLoadData->附件->工作流
这里面有个比较有意思的是,加载工作流会再次设置附件权限,注意这是再次,工作流前会设置一次,工作流后再设置一次。所以你想设置附件权限只能在工作流加载完成后设置,不然会被覆盖。目前官方提供一个事件afterWorkflowCallback,这是工作流完成后事件,附件也加载完成,但是只针对审批状态为审批中的数据有效!
0
帖子
0
勋章
121
Y币
感谢分享,学习了
12
您需要登录后才可以回帖 登录

本版积分规则