|
本帖最后由 carbinechun 于 2018-4-16 17:04 编辑
具体异常情况如下:我把toggle当作指纹功能的开关在业务处理中,默认关闭的状态,点击toggle时会弹出是否开启的确认对话框,如果点否就不开启,也就是说toggle的checked属性值不变,第一次点击确认对话框的否的时候toggle显示的正常,但如果继续第二次点击打开确认对话框,再次点否的话toggle的ckecked属性的值就会变成true,不知道具体是什么原因。
我打开toggle的demo试了一下,有类似的情况出现:在“通过其他组件控制toggle的状态”button组件上面的toggle组件,直接点击的话会正常显示value的值是true或false,交替出现都正常;在点几次toggle后,如果点击button来控制toggle状态,也会对应显示,连续点button的话toggle状态关联显示正常,但如果在点button几次后如果再点一下toggle,再点button的话就无法正常控制toggle的状态了,想要控制的话在点button的过程中如果点了toggle,那就要连续点两次(或4次,应该是2的位数)toggle才可以,如果只点一次的话不能正常显示。跟踪了下设置语句执行前后toggle的checked值未变化
两个调试都是在本机和apploader里进行的,两种环境情况相同,不确定这属于bug还是调试的环境什么的有没有影响
补充说明一下,出现异常情况的是通过代码来设置toggle的checked属性,具体代码如下- var toggleObj = this.comp("toggleVal");
- toggleObj.get('checked') ? toggleObj.set({
- 'checked' : null
- }) : toggleObj.set({
- 'checked' : 'true'
- });
复制代码
如果我把判断的条件取值改成用toggle.val(),设置值的时候也是用toggle.val(value)这种形式的话,就不会有显示异常的情况了,实际代码如下
- var toggleObj = this.comp("toggleVal");
- toggleObj.val() ? toggleObj.val(false) : toggleObj.val(true);
复制代码
|
|