Skip to content
This repository has been archived by the owner on May 31, 2021. It is now read-only.

关于col.replaceValues函数实现的疑问 #611

Open
ailbs opened this issue Aug 22, 2019 · 0 comments
Open

关于col.replaceValues函数实现的疑问 #611

ailbs opened this issue Aug 22, 2019 · 0 comments

Comments

@ailbs
Copy link

ailbs commented Aug 22, 2019

针对于非压缩版本jquery-weui.jscol.replaceValues函数实现的一点疑问。在该函数实现内部,有一句col.setValue(col.values[0] || '', 0, true);,对于col.values[0] || ''表达式,如果col.values[0]取值为int类型的0的话(不是字符串类型的"0"),那么该表达之最终的取值结果为''(空字符串),导致后续代码可能出现问题。想确认下,当时就是这么设计的,不允许使用int类型的0,还是忽略了0值的考虑?

  • 错误代码:
col.replaceValues = function (values, displayValues) {
              col.destroyEvents();
              col.values = values;
              col.displayValues = displayValues;
              var newItemsHTML = p.columnHTML(col, true);
              col.wrapper.html(newItemsHTML);
              col.items = col.wrapper.find('.picker-item');
              col.calcSize();
              col.setValue(col.values[0] || '', 0, true);
              col.initEvents();
          };
  • 运行环境:任意
  • 重现步骤:
    发现此问题的前提是,我尝试修改了city-picker.js的数据源中关于namecode值的描述,其中部分数据的code值使用了0,导致在滑动到code值为0的选项时报错,debug之后发现此问题。
  • 期望结果:如果code值为0,代码可以正常执行
  • 报错截图:
    image

截图中insurance-picker.js其实就是city-picker.js修改数据源后的重命名,除数据源修改过之外其它代码均未发生变更。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant