Javascript 有没有办法在v-for循环中观察输入(v-model)

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>

我有一个循环遍历的对象数组,我想观察与每个对象相关的输入,但问题是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>

@{{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
选项。我将很快更新我的答案。