javascript - 用 Vue.js 2 观察数组

标签 javascript arrays vue.js

我有一组选择(分配给项目的 item.pricelists)在 v-for 循环中呈现并与 v-model 绑定(bind)。该项目的可能选择选项由 item.valid_pricelists 中的另一个 v-for 呈现。两者都是从同一个数组中的服务器中提取的。 现在我需要注意用户何时更改选择,因此我可以使用 item.valid_pricelists 中的新值更新 item.pricelists 数组。

渲染部分:

<div v-for="(row,index) in item.pricelists">
    <select v-model="row.id">
        <option :value="price_list.id"  v-for="price_list in item.valid_pricelists">
        {{price_list.description}}
        </option>
    </select>
    Parent pricelist : {{row.parent_id}}
</div>

观看部分:

watch:{
    'item.pricelists.id': {
        handler: function (val,oldVal) {
            console.log(val + " - " + oldVal);
        }, deep:true}
}

现在,注意 - 这对简单的变量来说工作得很好 - 拒绝让步。

这是 fiddle与代码的相关部分。

我在看 vue docs ,但我无法理解它。任何帮助将不胜感激。

最佳答案

我不知道是否可以用 watch 解决这个问题,但是,我会建议另一种方法。您可以将 v-on:change 添加到您的选择中:

<select v-model="row.id" v-on:change="selectionChanged(row)">

并向 Vue 实例添加一个方法:

new Vue({
  ...
  methods: {
    selectionChanged: function(item) {

    }
  }
}

这样,只要调用 selectionChanged 函数,您就会知道选择已更改。

关于javascript - 用 Vue.js 2 观察数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201331/

相关文章:

php - 获取数组数组中下一个元素的值

c - 无效读取 - Valgrind 和 C

javascript - 如何在python中将数据从一个文件传递到另一个文件?

javascript - 更改 meteor 中 mongodb 集合的结构

javascript - 我如何在路由模型nodejs中获取获取的记录

javascript - React js - this.state 中的 API 响应是空对象

java - 尝试显示数组中仅出现一次的整数

javascript - 使用 JavaScript 从 SOAP 响应中提取特定值

javascript - VueJS : Cannot read property 'name' of undefined"

javascript - 将外部脚本添加到 vue.js