function getObjectKeys(object){
var keys = [];
for (var property in object)
return property;
}
console.log(getObjectKeys(3332:[])) // 3332
Array.prototype.notempty = function() {
var arr = [];
this.map(function(val, index) {
if (val !== "" && val != undefined) {
arr.push(val);
}
});
return arr;
}
this.selectHouse = this.selectHouse.notempty()
具体情况如下:
checkboxGroup v-for生成三个checkbox,默认勾选。当我点击某个checkbox默认取消勾选并且删除该checkbox。
从最后一个开始删,也就是删除默认绑定的model数组中的最后一个值,这时候剩余checkbox的选中状态是正常的。
但是如果从中间开始删,比如删除第二,那么第二个checkbox会被删除,但是第三个checkbox的选中状态样式没有了,model数据还是在的。
我们在删除 model数据后,更新数据的时候用this.$nextTick进行数据更新
v-for 的时候key的取值不取 index 而取实际的value值
v-for在更新已渲染的元素列表的时候,采用 就地复用 策略,如果列表的数据发生变化,那么它会根据key值取判断值是否修改,如果修改则重新渲染这一项,否则则复用之前的数据。但是如果我们用 index 下标来作为 key,那么在上面的例子中,我们删除了第二个数据,数据由三条变成了两条,列表重新渲染,而原本第三个checkbox的key是2,由于model 数据长度由3变成了2。第三个checkbox的key由 2 变成了1 导致重新赋值渲染。所以就导致实际值存在,但选中状态缺消失了的问题。
前端每日两三问
整理两到三个日常遇到的问题!!
解决它!!
欢迎小伙伴给出正确的解决方案,你也可以后台给出你平常开发中遇到的问题,分享给大家一起解决!!
我就知道你“在看