场景: list组件中,每一行 需要显示多个radio 或者 checkBox,并且每一行显示选择的类型都不一样!radio 或checkBox 的选择数据源是存放另一个data组件中!!
思路:正常的想法是每一行放一个radioGroup 组件,并且每个radioGroup可以设置过滤条件!用于显示 data中不同的 数据!,参考:http://docs.wex5.com/bex5-ui-question-list-10202/
可以参考select组件是拥有的这个能力的!可以参考:http://doc.wex5.com/comps-select/#008 第三个案例
(所以,如果是list中使用radio 组件显示不同数据的话,也可以换成select组件来选择不同数据源的数据)
以下方法是之前的思路,现在可以忽略了,有兴趣的可以看看, radioGroup 的方式简单明了,下面是不适用radioGroup ,完全list嵌套显示单个的radio
场景1:如果list中每一行数据显示的radio 或 checkBox 类型都不一样,(确保是不重复的类型)
解决方法:
两个数据源 需要使用list嵌套 加单个的 radio 或 checkBox 来显示选择样式!
(list嵌套参考:http://docs.wex5.com/wex5-ui-question-list-2005/)
里层list设计!可以radio 绑定一个里层data的字段,lable绑定一个显示的字段!
外层data组件需要赋值的那个字段!通过计算规则,绑定一个自定义js方法!在这个js方法中,根据当前行type类型进行查询过滤从表的 数据!然后循环判断 从表data中,radio绑定的data字段的值,是否是选中状态,
如果是,则将当前行的值赋值给主表data字段(其实就是return 一个字符串即可,那么计算规则中主表data字段就会自动感知从表数据的变化,并进行赋值!)
里层 radio关联的 data字段,也设置 计算规则,绑定一个自定义js函数,通过type类型字段,找到主表对应的行对象,然后判断那个字段的值和当前行字段的值是否相等,如果相等,则给radio绑定的字段赋值为选中(return 一个值表示选中的),否则不处理(默认为非选中的)
场景2:如果list中可能存在 两行数据显示相同类型的 radio 或 checkBox
这个时候 里层显示radio的list 绑定的data就没法通过计算规则, 算出数据了,因为主表类型是一样的,造成了冲突
解决方法:
表单编辑的时候,radio 选择,赋值的时候,在点击事件中获取里层list选中的值,赋值给外层list 的当前行字段!
表单显示的时候(查看详细页),建议不要使用list嵌套,不要radio 循环显示了,就直接显示出那个字段的值即可(因为radio 没法通过 绑定 计算出是否需要选中)
评一波