如何使用 vue 观察对象数组中的特定属性

2024-05-25

我正在使用 vue.js 2.5.2

我有一个对象数组,我想观察 forms[*].selected ,如果它发生变化,则调用一个函数。

这是我的尝试,但显然这是不正确的。我尝试将数组放入 for 循环中以观察所选的每个对象的属性。

watch: {
  for (var i = 0; i < forms.length; i++) 
  {
      forms[i].selected: function(){
      console.log("change made to selection");
    }
  }
},

这是称为 forms[] 的对象数组

forms: [
  {
    day: '12',
    month: '9',
    year: '2035',
    colors: 'lightblue',//default colour in case none is chosen
    selected: true
  },
  {
    day: '28',
    month: '01',
    year: '2017',
    colors: 'lightgreen',//default colour in case none is chosen
    selected: true
  }
],

任何帮助将不胜感激,

Thanks


你可以使用深度观察者 https://v2.vuejs.org/v2/guide/computed.html#Watchers,但更优雅的解决方案是创建您想要观看的数据的计算属性,然后观看它:

new Vue({
  el: '#app',
  data: () => ({
    forms: [{
        day: '12',
        month: '9',
        year: '2035',
        colors: 'lightblue',
        selected: true
      },
      {
        day: '28',
        month: '01',
        year: '2017',
        colors: 'lightgreen',
        selected: true
      }
    ],
  }),
  computed: {
    selected() {
      return this.forms.map(form => form.selected)
    }
  },
  watch: {
    selected(newValue) {
      console.log("change made to selection")
    }
  }
})
<html>

<head>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>

<body>

  <div id="app">
    <ul>
      <li v-for="(form, i) in forms" :key="i">
        <input type="checkbox" v-model="form.selected"> {{form.colors}}
      </li>
    </ul>
  </div>

</body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 vue 观察对象数组中的特定属性 的相关文章

  • Typescript 继承:扩展基类对象属性

    当扩展一个类时 我可以轻松地向它添加一些新属性 但是 如果当我扩展基类时 我想向基类的对象 简单对象的属性 添加新属性怎么办 这是一个带有一些代码的示例 基类 type HumanOptions alive boolean age numb
  • 如何在Vue3中对setup的内部函数(不是返回)进行单元测试?

    我想这样测试 情况1 错误 无法监视内部属性 因为它不是函数 改为未定义 组件 vue export default setup function outer inner function inner do something for on
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • 模拟安装挂钩 Jest 测试装置

    我正在对组件进行一些单元测试 但是 在某些组件中 我有一些东西在运行mounted使我的测试失败的钩子 我设法模拟了我不需要的方法 但是 我想知道是否有一种解决方法可以模拟mounted钩住自己 components attendeesLi
  • 在 ES6 中使用 import 和 require 的正确方法是什么?

    关于 import 和 require 及其差异有多个问题 像这些 JavaScript 中的 import 和 require 有什么区别 https stackoverflow com questions 51373933 what i
  • Pandas 将对象转换为 timedelta

    我有以下数据 Duration 0 00 00 00 1 00 00 00 2 00 00 57 3 00 03 16 4 00 00 00 And Duration被存储为一个对象 我想将其转换为具有秒数的整数 例如 00 03 16 被
  • Vue.js 更改 {{ }} 标签

    我想改变 something by 在 Vue js 中 我怎样才能实现这一点 这可能吗 我在 AngularJS 中寻找的等效项 var app angular module app function interpolateProvide
  • 如何在 Atom 中启用 .vue 文件的语法突出显示?

    我开始使用 Vue js 我遇到的第一个问题是我的 IDE Atom 无法美化我的 vue 文件 这一切都只是白色的文字 如何让 Atom 正确突出显示 vue 文件 语言 vue https atom io packages langua
  • 无法使用Vue获取灵活元素的CSS属性值

    我正在尝试获取 CSSwidth灵活元素的属性 但由于某种原因它不起作用 代码笔 https codepen io anon pen pLEwdp editors 1010 https codepen io anon pen pLEwdp
  • 不使用Vue可以使用Vuex吗? (Vuex 服务器端?)

    Vuex 抱怨如果不调用 Vue use Vuex 就无法创建新的 store 实例 虽然这通常没问题 但我正在摆弄使用同一商店编写后端 前端的想法 有人知道答案吗 Thanks TL DR 你可以在 Node 中完美使用 Vuex 无需浏
  • vue如何检测页面是否刷新?

    我尝试这样 created window addEventListener beforeunload function event event returnValue Write something this router push 像这样
  • 在新窗口中打开 VueJS 组件

    我有一个只有一页的基本 VueJS 应用程序 它不是 SPA 而且我不使用 vue router 我想实现一个按钮 单击该按钮时会使用我的 Vue 组件之一的内容执行 window open 函数 查看来自的文档window open ht
  • 将 FORTRAN 对象传递给 C,反之亦然

    我有我的 Fortran 对象 即 this object a this object b this object c 我想将它传递给用 C 编写的代码 我主要是一名 FORTRAN 程序员 而且我很少接触 C 我正在使用iso c bin
  • FontAwesome SVG 图标与 Vuetify - 如何在 v-icon/prepend-icon 中使用?

    我是 Vue 新手 找不到如何在 v icon 和 prepend icon 中使用 FA SVG 图标的确切答案 如果我使用
  • 从组件传递数据

    我对 Vue 相当陌生 我正在尝试将数据从组件传递到视图 我不确定我是否在使用props正确的 我有一个对话框 当我保存时 我想将数据插入数据库 我也想重复使用addCustomer function 这就是为什么我没有将该函数放置在组件中
  • 用变量字符串设置槽的简单方法?

    有许多slot例子 但没有克莱尔和简单 因为我需要 我需要类似的东西 var x Hello slot x 这就是我需要的 在一个具体的例子中 https jsfiddle net 2qdh3x3v https jsfiddle net 2
  • 创建动态多维对象/数组

    我正在尝试使用 JS 创建一个多维数组 以便我可以通过 Ajax 调用 PHP 来发布一些数据 这可能很简单 但我对 JS 的了解很少关于这个具体的事情 这是带有代码的 JSFiddle http jsfiddle net k5Q3p 我想
  • 如何在不使用变换或顶部/左侧的情况下转换列表中项目的位置

    有一天我偶然发现一个例子 https codepen io itslit pen gvKrMY它使用 Vue js 但我的问题更多是关于 Vue 用于实现状态之间转换的 CSS 和 HTML 卡片暂时获得等级 shuffleMedium m
  • Vue js动态导入组件

    我有以下父组件 它必须呈现动态子组件列表
  • 如何处理 Nuxt 中导致页面渲染崩溃的 apollo 客户端错误?

    我目前正在维护一个生产 Nuxt js Vue 应用程序 该应用程序集成了 GraphQL Apollo 客户端 该客户端遇到页面渲染错误 为了增加获得回复的机会 我构建了一个简单的代码示例 仅展示我们遇到的问题 谢谢大家 源代码 Clie

随机推荐

  • 用于显示列表错误的表单绑定

    我有一个Product对象包含一个Set
  • 如何将屏幕旋转为横向?

    如何将屏幕旋转为横向 你能建议简单的代码吗 这比你最初想象的要棘手 经过多次讨论后 这篇博文 带有随后进一步讨论的链接 包含了最简洁的答案 如何随意切换横屏模式 http simonwoodside com weblog 2009 2 27
  • 通过 jquery 设置 type="file" 的值[重复]

    这个问题在这里已经有答案了 Note 下面的答案反映了 2009 年旧版浏览器的状态 现在 您实际上可以在 2017 年使用 JavaScript 动态 编程地设置文件输入元素的值 有关详细信息以及演示 请参阅此问题中的答案 如何以编程方式
  • 将内存清零

    海湾合作委员会 4 4 4 C89 我只是想知道大多数 C 程序员想要将内存清零时会做什么 例如 我有一个 1024 字节的缓冲区 有时我这样做 char buffer 1024 0 这会将所有字节归零 但是 我应该这样声明并使用 mems
  • CSS - 设计类样式的不同方法

    阅读下面的 CSS 代码我想知道 a 和 b 之间有什么区别 第一个声明是一种好的样式方式吗 a round box icon b round box icon 使用 A 您选择具有 2 个类的所有元素 同时 使用 B 您选择所有具有类 r
  • Chart.js 圆环图无法正常工作

    我正在尝试使用 Chart js 圆环图 我的 JSON 数据是从数据库中正确获取的 但在值填充时图表将不会显示 如果我粘贴静态示例代码 那么它会显示正确的数据 function playerPrel2Res qID var tmp pla
  • 如何在使用 window.open 时保持当前页面

    我正在射击Window open 命令 这会在另一个选项卡中打开链接页面 我想要的是 当我单击链接时 链接将在新窗口中打开 但应该位于同一页面上 那可能吗 目前我正在这样使用 function AddToDatabase url windo
  • FOSUserBundle 强制用户写入不同的密码

    我有一个使用 FOSUSerBundle 在 Symfony2 0 上运行的应用程序 连接该应用程序的用户每 3 个月必须更改一次密码 密码已就位且正在运行 今天 如果用户每 3 个月写入与前一个密码相同的新密码 则无需验证 他还可以使用该
  • Crypt::OpenPGP Symkey 解密失败:无效的密钥 ID

    我遇到问题在哪里地穴 OpenPGP https metacpan org module Crypt 3a 3aOpenPGP无法解密 GPG 编码的消息 看来我是不是第一个 http www perlmonks org node id 9
  • 有条件地隐藏 Gridview 中的 CommandField 或 ButtonField

    我有一个GridView显示人员记录 我想有条件地显示CommandField or ButtonField基于基础记录的某些属性 这个想法是只允许对特定的人执行命令 做这个的最好方式是什么 我更喜欢声明式解决方案而不是过程式解决方案 首先
  • cookie神秘重现的原因是什么?

    我正在开发一个使用 cookie 来存储会话信息的 Web 应用程序 我已经手动删除了会话 cookie 因为我正在处理代码的另一部分 我不需要登录会话 然而 在页面重新加载几次后 会话 cookie 神秘地重新出现 其中包括我之前出于测试
  • Notepad++,比较插件安装问题

    我有 Notepad 7 5 8 npp 7 5 8 它没有插件管理器 以前的版本曾经有过它 我遵循了这些说明 我从下载的https sourceforge net projects npp compare https sourceforg
  • DB2 vs PostgreSQL vs SQL Server [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人用过这三个数据库吗 你和他们有什么经历 PostgreSQL 对于一个项目来说看起来相当诱人 但我很想了解更多关于它的信息 我们是一家 NE
  • 计算字符串中的单词数

    我需要一些帮助来计算字符串 s 中的单词数 计算字符串 s 中的单词数 单词之间用空格分隔 有溶胶 istringstream iss s string temp int words 0 while iss gt gt temp words
  • ASP.Net MVC 2 - 通过在参数中指示返回操作和控制器来重用控制器/视图

    Problem 在我的应用程序中 我在多个地方为用户提供了一个选择屏幕 即 必须在多个操作中使用相同的选择屏幕 解决方案 我想出了以下解决方案 将返回操作和控制器传递给处理实体选择的操作 Example 假设应用程序中有多个位置 用户必须选
  • System.Web.Cache 和 HTTPContext.Current.Cache 之间的区别

    System Web Cache 和 HTTPContext Current Cache 有什么区别 在什么情况下同时使用两者 System Web Caching Cache 这是 NET 缓存的实现 System Web HttpCon
  • 如何仅隐藏一些未提交的更改?

    我正在对 Git 存储库进行重大更改 并意识到某些更改需要向后移植到错误修复分支 我不想签入我的所有更改master因为它们还没有经过充分的测试和准备 但我确实想提取其中一些更改并将它们提交到错误修复分支 然后按原样返回到 master 我
  • 如何使用 Microsoft Graph API 按分配的计划筛选用户

    我正在尝试下面的请求 按分配计划属性中的 servicePlanId 过滤用户 尝试过滤 电话系统 计划 https graph microsoft com beta users filter assignedPlans any x x s
  • 更新或插入 SQL Server 时忽略错误行

    我的项目必须处理巨大的数据库 在最坏的情况下 它可能是超过8000万行 现在 我有 2 张桌子T1 and T2 我必须从表中复制数据T1到餐桌T2 如果表中的一行T1表中已存在T2 相同主键 然后更新该行其他列的数据T1 to T2 否则
  • 如何使用 vue 观察对象数组中的特定属性

    我正在使用 vue js 2 5 2 我有一个对象数组 我想观察 forms selected 如果它发生变化 则调用一个函数 这是我的尝试 但显然这是不正确的 我尝试将数组放入 for 循环中以观察所选的每个对象的属性 watch for