gpt4 book ai didi

javascript - Vuejs 在 v-model 中绑定(bind)数组

转载 作者:行者123 更新时间:2023-12-03 03:04:49 25 4
gpt4 key购买 nike

我想将 v-model 绑定(bind)到值数组

所以我有

paymenttypes:[
{label:'cheque', value:1},
{label:'two', value:2}
]

pays:[],
created(){
this.paymentmethods.forEach((value) => {
this.pays.push({id:value.value, ref: '' , val: 0 })
});
}

现在在模板上

  <div class="row saleTotal" v-for="(key, extrafieldsDetails) in paymentmethods">
<div class="col-sm-4">
<h5>{{extrafieldsDetails.label}}</h5>
</div>
<div class="col-sm-4">
<input type="number" min="0" class="text-right form-control" v-model="pays[key].ref">
</div>
</div>

但出现错误

cannot read property 'ref' of undefined 

可能出了什么问题?因为 pays 数组有一个带有 ref 键的对象。我哪里出错了?

最佳答案

我假设您的变量 paymenttypes paymentmethods 是相同的。

如果是这样,您的 v-for 绑定(bind)不正确。您不会从 paymentmethods 中获取键值对,因为它是一个数组,不是对象。

因此,您的 v-for 可以写为 v-for="(item, index) in paymentmethods" 其中 item paymentmethods中的数组item,indexitem paymentmethods中的索引。

然后您需要按如下方式替换属性访问器:

  • {{item.label}} 而不是 {{extrafieldsDetails.label}}

  • pays[index].ref 而不是 pays[key].ref

var app = new Vue({
el: "#app",
data: {
paymentmethods:[
{label:'cheque', value:1},
{label:'two', value:2}
],

pays:[]
},
created(){
this.paymentmethods.forEach((value) => {
this.pays.push({id:value.value, ref: '' , val: 0 })
});
console.log(this.pays);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.min.js"></script>
<div id="app">

<div class="row saleTotal" v-for="(item, index) in paymentmethods">
<div class="col-sm-4">
<h5>{{item.label}}</h5>
</div>
<div class="col-sm-4">
<input type="number" min="0" class="text-right form-control" v-model="pays[index].ref">
</div>
</div>

</div>

关于javascript - Vuejs 在 v-model 中绑定(bind)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47217874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com