我在v-for
元素上使用li
指令从数组中生成一组图像。在鼠标悬停在图像上时,我想将我所关注的特定图像的id
属性更改为'drag'
,我希望此图像是唯一具有{{1}的元素} id
。
我尝试使用类似于'drag'
的内联语句绑定:id
,但它不起作用,只是用:class
替换id。
我已经绑定到[object Object]
并且行为正确:
:class

var app = new Vue({
el: '#app',
data: {
list: [{
Name:'Object 1', link:'obj1.jpg'
}, {
Name:'Object 2', link:'obj2.jpg'
}, {
Name:'Object 3', link:'obj3.jpg'
}],
dragIndex: "",
},
methods: {
drag(item,index) {
console.log("Dragging " + item)
},
startDragID(index) {
this.dragIndex = index
console.log("Element Prepped For Drag: " + index)
}
}
})

答案 0 :(得分:2)
Vue不支持使用内联object syntax绑定到id
属性,就像class
和style
属性一样。
您可以创建一种方法来根据给定的index
计算适当的ID值:
methods: {
getID(index) {
return (index == this.dragIndex) ? 'drag' : false;
}
}
并将结果绑定到id
属性:
<li v-for="(items, index) in list" :id="getID(index)">
或者,由于确定id的方法很简单,你可以添加逻辑内联:
<li v-for="(items, index) in list" :id="(index == dragIndex) ? 'drag' : false">