当前位置: 首页 > 知识库问答 >
问题:

如何在Vue 2中查看数据对象中的所有键

云瑞
2023-03-14

我的数据对象:

data: {
    selected: {
        'type': null,
        'instrument': null
    },

我的模板:

<select v-model="selected['instrument']" @change="switchFilter('instrument', $event)">
    <option v-for="instrument in instruments" :value="instrument.value">@{{ instrument.text }}</option> 
</select>

<select v-model="selected['type']" @change="switchFilter('type', $event)">
    <option v-for="type in types" :value="type.value">@{{ type.text }}</option> 
</select>

如何同时观看两个选定的索引?我想做这样的事情,每次任何索引更新:

watch: {
    selected: function(o, n) {
        ...
    }
}

共有3个答案

南宫嘉
2023-03-14
watch: {
  'selected.type': function (newSelectedType) {
    console.log(newSelectedType)
  },

  'selected.instrument': function (newSelectedinstrument) {
    console.log(newSelectedinstrument)
  }
}

如果您只是试图从所选的中计算一个新数据,您可以使用计算属性,因为Vue的数据是反应性的,计算属性也可以检测数据的变化。

如果要使用单个函数查看整个对象,可以将$watchdeep:true配合使用:

mounted () {
  this.$watch('$data.selected', this.onSelectedUpdate, { deep: true })
}

请注意,“$data.selected”是一个字符串,Vue将对其进行解析。

在你的方法中:

onSelectedUpdate (newSelected) {
  console.log(newSelected)
}

戎泰
2023-03-14

我想你可以做到这一点:

watch: {
    $data: {
        handler: function(val, oldVal) {
            console.log(val)
        },
        deep: true
    }
},
晁璞
2023-03-14

您可以使用vue的监视器提供的深层选项。正如文档中所述:

要同时检测对象内部的嵌套值更改,需要在options参数中传入deep:true。请注意,您不需要这样做来侦听数组突变。

您的代码如下所示:

watch: {
    'selected': {
        handler: function (val, oldVal) {
            console.log('watch 1', 'newval: ', val, '   oldVal:', oldVal)
        },
        deep: true
    }
}
 类似资料:
  • 嗨,伙计们,我有一个这样的东西 我可以检查tmp吗?如果所有数据都不为空,我会做些什么?,我知道使用if的简单方法,但如果使用if运算符,数据太多了?

  • 问题内容: 在python中找到对对象的所有引用的好方法是什么? 我问的原因是看起来我们有“内存泄漏”。我们正在将图像文件从Web浏览器上传到服务器。每次执行此操作时,服务器上的内存使用量都会与刚刚上传的文件的大小成比例地增加。python垃圾回收永远不会释放该内存,因此我认为即使在每次请求结束时,也可能存在指向图像数据的流浪引用,这些引用并没有被删除或超出范围。 我认为能够问python很好:“

  • 对于表单创建者,不错过任何一条重要的数据是很重要的。关注金数据微信公众号就可以随时随地免费收到数据提醒,并查看数据详情。 接收新数据提醒 进入表单「设置」-「提醒推送」-「系统自动推送提醒」,点击「绑定微信号」按照提示绑定个人微信。勾选此项,保存设置,如图 1 所示。 图1 勾选新数据微信自动提醒 这时候你的个人微信号可以接受新数据的微信提醒了,点击「详情」,可查看此条数据的所有信息,如图 2 所

  • 我试图输出数据帧的所有列。 代码如下: 当我输出数据帧时,并非所有列都显示出来。这有21列,在一些列之间只有点“…”我正在使用ipython笔记本。有没有一种方法可以忽略这一点。

  • 我有一个代码,在那里我需要根据外包的类型和依赖的类型搜索特定的数据(两个都下拉,每个下拉一个)。有3种类型的外包和4种类型的依赖。当外包id为1和2以及依赖者时,我可以进行搜索。当用户选择id为1或2的外包时,必须选择依赖者。当outsource id为3时,不需要选择dependent,因为用户将在这里查看中的所有数据,除非他们希望使用dependent查看。但问题是,当我选择这种类型的外包时,

  • 问题内容: 如何在Java程序中找到堆上的活动对象数? 问题答案: 您可以尝试以下方法: 创建自己的java.lang.Object(复制原始源代码) 计算构造函数中创建的对象(不为数组调用) 将您的类文件的路径添加到引导类路径 请参阅此(旧)文章以获取示例。 使用 JPDA或JMX可能有更好的方法,但是我还没有找到方法…