<td v-for。。 :background="baseUrl+s.image.images[0]"
有的时候images可能是个空数组 这样绑定 一旦遇到空数组会报错 该如何兼容处理一下
我想到的是计算属性 但是可以把这个值传进去处理吗
<td v-for。。 :background="baseUrl+s.image.images[0]"
有的时候images可能是个空数组 这样绑定 一旦遇到空数组会报错 该如何兼容处理一下
我想到的是计算属性 但是可以把这个值传进去处理吗
谁说传不了参的,闭包忘了?
:data="closure(item, itemName, blablaParams)"
computed: {
closure () {
return function (a, b, c) {
/** do something */
return data
}
}
}
亲测有效
不要认为 这里data 赋值不了给 :data
这里是return 一个 匿名函数, 实际 :data 绑定的是这个匿名函数, data 是可以return 的!
明明正确正常合规的回答,居然还有人举报,连正常的技术讨论也有小人来参合吗???!!!
有任何异议欢迎来辩
关于 评论中提到的,能否触发缓存结果,我做了一个试验
{{cacheSome('a')}}
cacheSome () {
let _now = Date.now()
return function (a) {
return _now + a
}
}
应该也是能起到触发缓存的结果
computed:{
bg(){
let {baseUrl,s} = this
return s.image.images[0]?baseUrl+s.image.images[0]:''
}
}
:background="bg"
不妨试试早点处理,当它为非空数组才编译。
<td v-if="image.images.length !== 0" v-for="..." :background="baseUrl+s.image.images[0]">...</td>
建议可以这样来写:<td v-for。。 :background="baseUrl + (s.image.images.length ? s.image.images[0] : 'defaultImg.png')">
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.7k 阅读
2 回答977 阅读✓ 已解决
计算属性不能传值,只能利用已有参数做出相应的某种变化,想使用灵活需要内部依赖的参数变化来调整;
使用methods来做,根据传参返回不同的值。