Javascript 有没有办法在v-for循环中观察输入(v-model)
我有一个循环遍历的对象数组,我想观察与每个对象相关的输入,但问题是v-model=“something”:这个东西改变了,所以我不知道该看什么Javascript 有没有办法在v-for循环中观察输入(v-model),javascript,vue.js,Javascript,Vue.js,我有一个循环遍历的对象数组,我想观察与每个对象相关的输入,但问题是v-model=“something”:这个东西改变了,所以我不知道该看什么 <table class="table displaynone" id="table-sauces" > <tr v-for="o in order"> <td>@{{o.produit}} @{{o.num}}</td>
<table class="table displaynone" id="table-sauces" >
<tr v-for="o in order">
<td>@{{o.produit}} @{{o.num}}</td>
<td v-for="sauce in les_sauce">
<input type="radio" :name="o.produit+o.num" @click="$emit(setsauce(o.is_menu))" :value="sauce.id" v-model="o.sauce">
@{{sauce.name}}
<img :src="sauce.link">
</td>
</tr>
</table>
@{{o.produit}}@{o.num}
@{{sauce.name}
如何查看输入的值?您有两个级别的循环,它们似乎在不同的事情上循环(
顺序
和调味汁
)
不过,下面是一个简化的示例,它使用了代码的内部循环(v-for=“sauce in les_sauce”
),并显示了如何监视更改:
您可以为每个数组项创建单独的子组件,并观察子组件内部的更改
例如,这是父零部件模板中的循环零件:
和您的子组件:
Vue.component('saint-view'{
道具:[“沙司”,“命令”],
模板:`
@{{sauce.name}
`,
观察:{
酱汁:功能(){
//当您的一个“酱汁”更改时,这将在酱汁视图组件中触发
},
ord:函数(){
//当您的一个“o”更改时,这将在sauce view组件中触发
}
}
})
如上面子组件代码的示例代码所示,这里您可以查看父级-o
和saint
注意:父组件中的o
作为ord
传递给子组件。这是一个示例,用于说明父组件和子组件中的变量如何不必相同
编辑:评论后的附加信息#4(深度观察)
在上面的示例代码中,我没有设置观看deep所需的deep:true
以下是来自以下站点的相关行:
选项:深
要同时检测对象内部的嵌套值更改,需要在options参数中传入deep:true
在您的情况下,可以按如下方式修改上面的示例代码:
watch: {
sauce: {
handler: function() {
// this will get triggered when any of the nested values of "sauce" change
},
deep: true // this enables watching the nested values inside this object
},
ord: function() {
// this will get triggered within sauce-view component, when one of your "o" changes
}
}
希望有帮助 当我在代码中复制时;它只是在HTML中进行CPOID和pats,然后运行循环顺序吗?因为它没有识别来自v-for=“o in order”属性的“o”,或者没有在实例上定义方法“o”,而是在渲染期间引用的。确保在数据选项中声明反应数据属性。(在组件中找到)更新了我的答案。您需要根据需要向子组件传递更多值。它起作用了!!,Bigg谢谢你,伙计,你帮我了解了很多东西,当我改变酱汁值时,手表不会被触发!!我刚注意到你的酱汁是个东西。您需要使用中给出的
deep:true
选项。我将很快更新我的答案。