Vuejs2 在v-for Vuejs中更改值和渲染对象
我有一个jsonArray,在我的模板组件中有v-for,比如:Vuejs2 在v-for Vuejs中更改值和渲染对象,vuejs2,Vuejs2,我有一个jsonArray,在我的模板组件中有v-for,比如: <div v-for="obj in data.objects" :key="obj.id"> <strong>Quota:</strong> <span>{{obj.quota}}</span> </div> 但问题是对象不会刷新,也不会呈现对象的新值 我怎么了?我应该如何更改v-for中的值 谢谢 配额: {{obj.quota}
<div v-for="obj in data.objects" :key="obj.id">
<strong>Quota:</strong>
<span>{{obj.quota}}</span>
</div>
但问题是对象不会刷新,也不会呈现对象的新值
我怎么了?我应该如何更改v-for中的值
谢谢
配额:
{{obj.quota}
刷新
var vm=新的Vue({
el:“#vue实例”,
数据:{
对象:[
{id:1,配额:100,分子:1,分母:3},
{id:2,配额:120,分子:2,分母:5},
{id:3,配额:75,分子:5,分母:6},
{id:4,配额:350,分子:3,分母:8}
]
},
方法:{
refreshValue:函数(元素){
this.objects.forEach((e,i)=>{
if(e.id==element.id){
this.objects[i].quota=e.numerator/e.demonator;
}
});
}
}
})
我能让它正常工作
配额:
{{obj.quota}
刷新
var vm=新的Vue({
el:“#vue实例”,
数据:{
对象:[
{id:1,配额:100,分子:1,分母:3},
{id:2,配额:120,分子:2,分母:5},
{id:3,配额:75,分子:5,分母:6},
{id:4,配额:350,分子:3,分母:8}
]
},
方法:{
refreshValue:函数(元素){
this.objects.forEach((e,i)=>{
if(e.id==element.id){
this.objects[i].quota=e.numerator/e.demonator;
}
});
}
}
})
在使用v-for
确定时始终添加键
,感谢您的建议,这是因为由于JS的实现方式,VueJS无法监视阵列中元素的动态更改。在循环的每个迭代中使用Vue.set
:谢谢terry!:)使用v-for
ok时始终添加key
,谢谢您的建议,这是因为由于JS的实现方式,VueJS无法监视数组中元素的动态更改。在循环的每个迭代中使用Vue.set
:谢谢terry!:)谢谢,我明白了,问题可能是我有个目标?所以我的数组对象实际上是在data.objects中,所以它不是在data{}@LorenzoBerti中初始化的,对象
在数据
中,但是你可以通过对象
直接在模板中访问它,而不是数据.objects
。另外,如果您在组件中工作,数据必须是函数而不是对象:谢谢,我明白了,问题可能是我有一个对象?所以我的数组对象实际上是在data.objects中,所以它不是在data{}@LorenzoBerti中初始化的,对象
在数据
中,但是你可以通过对象
直接在模板中访问它,而不是数据.objects
。此外,如果在组件中工作,数据必须是函数而不是对象:
refreshValue: function(element){
this.data.objects.forEach((e, i) => {
if (e.id == element.id) {
this.data.objects[i].quota = e.fractionNuminator /e.fractionDenominator;
}
});
}
<div id="vue-instance">
<div v-for="obj in objects">
<strong>Quota:</strong>
<span>{{obj.quota}}</span>
<button @click="refreshValue(obj)">Refresh!</button>
</div>
</div>
var vm = new Vue({
el: '#vue-instance',
data: {
objects: [
{id: 1, quota: 100, numerator: 1, denominator: 3},
{id: 2, quota: 120, numerator: 2, denominator: 5},
{id: 3, quota: 75, numerator: 5, denominator: 6},
{id: 4, quota: 350, numerator: 3, denominator: 8}
]
},
methods: {
refreshValue: function(element) {
this.objects.forEach((e, i) => {
if (e.id == element.id) {
this.objects[i].quota = e.numerator /e.denominator;
}
});
}
}
})