问题:
由于iview的iselect中要我geu选择数量做个限定,但这个组件的设计本身没有一个类似于max的属性,想来也属于一个比较小众的需求。
变通解决:
选项ioption中存在一个disabled属性,且有一个selected属性。于是,我对disabled属性绑定了一个方法,这个方法将根据iselect绑定的数组长度和选项当前的选中状态进行判断,如果选项个数超过指定数目,且选项状态为未被选中,则返回为true,否则为false。代码如下:
isDisabled:function(e){ if((this.selectedItems.length)>=5&&this.$refs[e]&&this.$refs[e][0].selected!=true)return true; else return false; },
html绑定方式如下:
结果:
当前可以满足需求,暂时能跑。
问题:在返回值判断的时候,用了三个条件,其中,中间的那个进行了一个结果测试。按说在增加了Items的个数后,refs中应该出现对应的对象,但是在实际运行中出现了一个找不到的问题,即$refs[e]返回内容为空,为什么,不得而知。由于属性绑定方法返回值的做法似乎不是vue的主流做法,控制台调试也比较费劲,因此没有继续深究。希望有人指点迷津,不胜感激。