-
Notifications
You must be signed in to change notification settings - Fork 26
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
关于进行尺寸同步和事件同步以及数据同步更新的建议 #35
Comments
先给个具体的实例吧 |
话说为啥要修改原有的原生 select,用了这个组件就可以当成原生的用。有 addOption removeOption 的操作,有 set 各种属性的操作。 |
就是不想用原生select 想让这个ui-select来完全代替啊 可是现在就是没法透明替换啊 透明替换 组件对用户不可见 用户无需关心才对 比如理想中的 shim ie8 、 es5-shim 啊 |
如何没法透明替换? |
https://mmonitormng.alipay.com/exhibit/merchants.htm 域帐号登录看源码 |
咱们这个有参考这个 widget 不? |
这个 reset 是由谁做的,希望的是单项同步,是从组件向原生 select 同步(第一次会从原生 select 读一次),双向的比较容易混乱,轮询什么的弊大于利。
现在 select 会根据浮层的宽度去设置 trigger 的宽度(这个可以考虑再优化下),用原生 select 的宽度也不靠谱,因为大部分用这个组件的都希望定制样式,所以必然会不一样。 |
保持透明我也同意,但如何做才是真正要讨论的。 我觉得暴露给用户的应该是组件,而不是原生 select,任何操作都可以通过组件去做。包括同步,比如选中某项后,原生 select 的 selectIndex 也会改变,这样提交表单不需要考虑 select 的状态。 |
难怪,思路不同哈哈 我觉得用户应该是可以自由选择使用native方式还是dummy方式的 我作为用户会比较喜欢操作原生的select元素 然后自身弄一套机制去re_init一下模拟组件 比如selectmenu的话就是各个实例监听到DOM的change后再重新执行selectmenu()一次;又或者在全局做替换初始化的时候提供一个全局的再初始化方法,在整个页面rerender的时候调用 宽度的问题 我觉得就是可以简化为trigger和原生元素等宽处理啊 这个应该比较好改 过两天闲一点要不我来push一下 |
初始化是 ok,现在也会根据 select 初始状态。但这种双向同步会混乱的
所以我觉得组件尽量提供好的 api,可以不用去操作原生的。 |
mmonitormng 这个系统最近使用了该select组件 不过因为是后引入的 而原有select的业务逻辑使用较复杂,有vm预先载入的,有JS动态创建或者options插入的,以及后续交互过程中需要动态更新options的;通过在TTI之后查找所有select元素并逐个进行对象实例化,目前可以正常使用,但是因为原元素宽高各不相同,会导致页面大面积的rerender,另外原有的select的事件绑定和options状态(选中、新增)更新都无法同步到select组件上,目前尺寸问题通过全局设定高优先级样式应用固定值临时解决了,事件和数据的同步只能逐个改原有代码了…
希望可以支持实现以上问题,实现事件双向通知或数据双向同步,达到透明替换原始元素的目标~
The text was updated successfully, but these errors were encountered: