在做vue的项目时,用的是Element的框架,发现el-switch组件有个问题,原本以为是框架的bug,最后发现是vue的使用问题。
【问题】
参考: https://github.com/ElemeFE/element/issues/11698
概述:不管el-switch的active-value属性为active-value="100"或active-value=100,v-model传如的变量为'100'(string)时,按钮皆为开启;v-model传如的变量为100(number)时,按钮皆为关闭。
猜测可能是el-switch组件对v-model的判断有误,只接收string。故给Element团队提了这个问题,希望无论v-model为'100'或100时,按钮都能为开启。
后得到的回复是这个地方是让开发者自己灵活使用的(之前也有人提过issue)。
【总结】
当active-value="100"或active-value=100时,表示v-model须为'100'(string);
当 :active-value="'100'"时,表示v-model须为'100'(string);
当 :active-value="100"或 :active-value=100时,表示v-model须为100(number);
即,根据active-value属性的值的类型判断,当v-bind时,则按照bind的值的来;当只是标签的属性时,默认为string。
ranchodarth 2020/02/27 16:38
厉害。。。现在格式严格匹配了。 😛
前端小白 2018/07/23 16:49
但是我用:active-value="1"会报错,用active-value="1"就不报错
Kiddo 博主 2018/07/23 18:02
@ 具体报错要查看你的代码才知道哦。 这里只能确定:active-value="1"表示值为1(int);active-value="1"表示值为"1"(string)。不是说一定得用哪个,而是根据开发者的需求灵活运用的。