-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Select控件标准的几个问题 #10
Comments
关于emptyText,我觉得通过empty string value挺好的。 关于staticText,我支持新做一个CommandMenu。不过数据格式建议是
还有,如果无value的话,handler就只能无参了 |
正好在设计
要不要 我是喜欢要参数的话会 |
其实我没看懂这啥意思…… |
CommandMenu的问题,可以无参先。确实是,有参可以自己玩。 emptyText属性,我觉得,可以干掉。如果datasource里有{name: '请选择', value: ''},则以该项作为默认显示文字。因为,其实null rawValue对Select的getValue来讲,就是empty string |
另外一个问题:要不要给下拉框中添加分隔符的方法,就是会出来这样的下拉框
我认为从需求上来说这是成立的,也应该有的,我个人意见如下:
|
大块人心 |
那天有位同学和我讲过相关需求,我拉他进来看看。我自己也想想 顺便问,现在{Array}datasource中的Object的keys是name和value吧? |
倒不介意 |
关于 emptyText我觉得它的使用场景很有限,一般都会默认选中一个值。 “为了保证后续还能回到这个状态,在下拉框中会保留一项”这种场景,提示一次后,他应该知道这个东西是干嘛的。 因此我觉得 单独增加一个 emptyText 配置项比较好,使用者也好理解些。 关于分隔符erik 说我过相关需求,其实我那个更恶心,是需要以 groupTitle + groupData 的模式显示。。。。做的我好恶心。。。 其实这种需求也是可以理解的,比如从10人中选一个,Select 按男女分两块。 男x1 x3女y1 想想再接着写。。。 |
不懂markdown语法的哭了。。。这排版,唉,就这么着吧 分割符的这种需求导致 datasource 貌似必须有所改动,如 [ 就嵌套两层吧,不能再嵌了,需求上我也想不出更变态的情况。。。。 那处理的时候,发现 datasource[index] 的 value 还是个 Array,就用某种className 标识一下吧。。。。 |
其实就是要 其实这个问题,我最近在思考 同样 PS:代码前面统一空4格就是标准的markdown格式了 |
现在是 |
哈哈,我做组件也是心力憔悴的一塌糊涂啊,还好是我一个人用。。。。 |
"里面每一项有个checkbox,可多选" Select 确实可能出现这种情况,但这是要避免的,因为用户体验真的不好,用户只是想简单的勾选就完事,不想在里面折腾到底选几个。 我也碰到过这种需求,后来是通过分组管理的功能侧面实现的。一个本身很简单的组件,我觉得要避免把它想的太复杂,如果PM真的说需要,前端也不应该什么都满足,而是通过其他更好的方式来实现 |
|
OK我去改……因为CLB用的是 |
我在家看不到,凭记忆输入的url |
@zhujl 去学呗,很简单的,半天功夫而已,而且你还能用 |
其实text很符合第一直觉。所以,我建议,有text用text,没text用name。 |
如果要支持嵌套数据结构(无论这期还是下期支持),我觉得都必须构建嵌套带层级的dom结构,不能简单className标识 |
个人意见是:让90%功能容易使用,让剩下10%功能能够通过使用者付出稍大的成本,能够实现。所以我觉得
|
现在是必须这么做了,
如果数据结构是嵌套的,DOM一定是嵌套的。我这里 用className 特指的是 仅加分隔符 的情况,完全可以在元素上通过className + border造出来
所以 |
仅分隔符,我觉得+一个separators属性挺好。虽然难拼写了点。。。。。。所以,如果有更好的命名最好 group如果赶不及,就future feature吧 |
可以搞一套基础UI,然后加一套扩展UI,比如 MultiSelect 这样的奇葩。。。 |
现在来看,
现在我觉得 |
我已经在 cda00a5 中实现了
|
在 dc1b434 中增加了 |
在 32c1fc5 中增加了 以下情况下,
当以上情况出现时,如果 至此 |
关,后续单独发标准文档Review |
关于emptyText
原定
emptyText
是在 什么都没选择 的情况下显示的文字,但这里有几点比较奇怪:Select
的交互过程中,只有刚渲染完会出现 什么都没选择 的情况,而为了保证后续还能回到这个状态,在下拉框中会保留一项<select>
元素是没这种东西的,默认选中第一项,由<option>
控制datasource
满足了emptyText
的需求,即有一个默认项,此时去不掉emptyText
的配置会很麻烦因此,建议把这个属性修改一下,新的描述如下:
关于staticText
据有关部门了解,这个属性是用来把
Select
控件变成一个命令菜单用的。但其实命令菜单不应该是InputControl
,因此建议单独实现CommandMenu
控件,优势如下:CommandMenu
只需{ text: handler }
或[ text ... ]
的配置,而不需要{ text: value }
的配置,因此两个控件的datasource
是不同的CommandMenu
没有随表单提交的需求,不会额外生成提交的参数Select
控件中大量逻辑在处理value
、rawValue
和selectedIndex
这三个属性的同步问题,而CommandMenu
不需要Select
处理同步已经有很大的负担,再额外增加staticText
复杂性会太高The text was updated successfully, but these errors were encountered: