有没有一种方法可以在v-for循环中观察输入(v-model) ?
is there a way to watch inputs (v-model) in a v-for loop
我有一个对象数组,我循环遍历,我想观察与每个对象相关的输入,但问题是v-model="something":这个东西改变了,所以我不知道该看什么
<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>
如何查看输入的值
你有两个层次的循环,它们似乎在不同的东西上循环(order
和les_sauce
)。
尽管如此,这里有一个简化的示例,它使用了代码的内循环(v-for="sauce in les_sauce"
),并展示了如何监视更改:
你可以为每一个数组项创建一个单独的子组件,并观察子组件内部的变化。
例如,这是父组件模板中的循环部分:
<td v-for="sauce in les_sauce">
<sauce-view :sauce="sauce" :ord="o"></sauce-view>
</td>
和子组件:
Vue.component('sauce-view', {
props: ["sauce", "ord"],
template: `
<div class="sauce-view">
<input type="radio" :name="ord.produit+ord.num"
@click="$emit(setsauce(ord.is_menu))"
:value="sauce.id" v-model="ord.sauce"> @{{sauce.name}}
<img :src="sauce.link">
</div>`,
watch: {
sauce: function() {
// this will get triggered within sauce-view component, when one of your "sauce" changes
},
ord: function() {
// this will get triggered within sauce-view component, when one of your "o" changes
}
}
})
正如上面子组件代码的示例代码所示,在这里您可以查看来自父组件的单个数组项—o
和sauce
注意:父组件中的o
作为ord
传递给子组件。这个例子展示了父组件和子组件中的变量不需要相同。
编辑:注释#4(深度观察)后的附加信息
在上面的示例代码中,我没有设置监视深度所需的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
}
}
希望有帮助!
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- knockoutjs可观察数组
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- 无限循环当观察父对象时,观察者不更新任何值
- 可观察量相互依赖以获取自己的值 - 循环引用
- 循环中的挖空下划线循环会失去可观察的功能
- 使用 Angular 2/RxJs 5 beta 可观察从 while 循环流式传输数据
- Knockout js,访问循环外的可观察对象
- RxJs:如何根据可观察的状态进行循环
- 如何拥有一个可观察的集合,该集合可以从两个源进行更新,而不会在knockout.js中引起循环
- 有没有一种方法可以在v-for循环中观察输入(v-model) ?
- Emberjs更新/观察者/运行循环
- 循环遍历具有可观察属性的JS对象
- 可观察订阅(循环)-防止用户输入错误的输入