javascript - obj.hasOwnProperty 即使在属性创建后也总是返回 false
问题描述
在我的 Vue 应用程序中,我有一系列股票:
stocks : [
{'name' : 'Tesla', 'price' : 800},
{'name' : 'Microsoft', 'price' : 300},
]
我还有一个看起来像这样的条件元素:
<template v-for="stock in stocks">
<div>{{ stock.name }}</div>
<div v-if="stock.hasOwnProperty('test')">test</div>
</template>
我有一种方法可以设置股票的测试属性。例如:
this.stocks[0].test = true;
如果在此声明下,console.log(this.stocks)
我看到了test
第一个属性stock
。但是,在模板中,当 astock
具有此属性时应该显示的元素仍然没有显示。为什么会这样?如何根据库存元素是否具有test
属性来动态显示/隐藏它们?
解决方案
Vue(无论如何,2)无法检测到属性添加或删除。
您应该在test
内声明该属性stocks
,以便它从一开始就存在:
stocks : [
{'name' : 'Tesla', 'price' : 800, test: false },
{'name' : 'Microsoft', 'price' : 300, test: false },
]
然后它将是反应性的,您可以根据test
.
推荐阅读
- php - 使用干预/图像创建的 Laravel 图像不可写
- python-3.x - 具有复杂芹菜链的自动缩放芹菜工人
- javascript - 如何从 JSON 获取属性值并使用 node.js 以特定格式将其写入文件
- javascript - 如何使用角度数据表动态显示json数据
- sql - 使用单个连接优化 SQL 查询
- java - TLS 1.2 客户端 Hello 失败
- struct - Common Lisp The Language 2 过时了吗?
- python - 如何将父类的相同更新值传递给内部类?
- boost-asio - boost::asio 和 boost::thread_group 每个线程都有自己的 libpqxx 连接
- caching - 带有 RequestContext 构造函数的 FatalError