对于取名的问题,我觉得有必要补充说明一下,我称LigerUI框架为LUI的UI框架,初衷并不是按常规的命名规则取首字母L加上UI组合而成的,而是这个LUI还有深层的含义,至于LUI的含义我也不想用用文字解释,因为LUI的文化,我觉得简单的文字是无法诠释的,想要真正理解LUI这个东西,还得看看这个东西。
当你们看到这里的时候,那么我默认你们已经初步理解了比累还严重的LUI,你们肯定会有疑问,LigerUI为何LUI呢,这可不是我一个人认为的,早在多年钱就有同行发出心声珍惜生命,远离LigerUI。
当然,我并没有上面的博主研究得那么深入透彻,但是我还是想表达我的一个LUI。之前我写过一篇文章,关于ligerUI的ligerGrid多行选择出现数据选不上的一个小问题,对于这个数据选不上的问题,上面的文章已经给出了解决的方案,但是这个方案是用了2个数组,3个事件,进行山路十八弯脑路回转解决的,这种解决方式你觉得头疼么,我也觉得头疼,但是总得解决啊。这不,项目中的另一个页面有遇到同样的问题,本来我可以复制之前的代码套路进去,但是我还是想看一下API,这一看,不得了,我发现了一个可以让我哭晕在厕所的事实。
以上的图片是之前的解决方案,这3个事件的执行顺序图片上的注释已经说清楚,但是让我觉得让我再看一次API的原因是,这3个事件的命名
取消事件是onUnSelectRow,选择事件是onCheckRow,假如你是LigerUI的开发人员,你会这么命名么,你肯定把选择事件命名为onSelectRow啊,我开始怀疑onCheckRow并不是选择事件,而且onCheckRow按照英文翻译过来,就是检查行事件嘛,如果把Check翻译为复选框,那么按照API给的描述,选择事件(复选框)要命名为onCheckSelectRow才算合乎情理,这么认为的话,也就是可以初步认为是API的中文翻译人员弄错了。如果onCheckRow真的是检查行事件,那么也就可以说通为何执行onUnSelectRow之前会先执行onBeforeCheckAllRow事件,只有执行onCheckRow事件,也就是说选择或取消前,会检查数据,选择或取消后,再检查数据,这样的逻辑就明了了。
既然怀疑onCheckRow不是选择事件,那就得全面好好看一下API,找一下有没有选择事件,靠,还真的有一个选择行事件
于是我决定把onCheckRow事件换为onSelectRow事件,打印看一下执行顺序,果真,onSelectRow与onUnSelectRow都是各执行各的,你不干扰我,我也不干扰你,那么针对数据选不上的问题就好解决多了啊,只需要一个数组,两个事件就可以啊,逻辑也很明了,不用像之前那样转那么多弯
成功,数据选不上的问题这样就简单解决了,这说明什么,说明onCheckRow极大可能就是检查行事件。也就是说LigerUI提供的中文API描述,翻译人员弄错,可能是有一些错误的!!!!!!只能说可能啊,毕竟onCheckRow的真正面目单从表面是不能理解透的,要知庐山真面目,只能深入底层中。
如果真是API的描述错误,引得我之前的处理方案走了那么多弯,那么你们还不觉得LUI么,而且还有很多LUI的地方,比如demo里有个源码链接,点击进去看,确实是源码,但是但是但是!!很多demo的源码都只是给出了一电脑屏幕的源码,屏幕一下的都看不了,这样的demo给和没给不是一样的么?哎,LUI。