vue.js 更新数组后没有更新 DOM

2023-11-21

我通过 AJAX 读取项目列表并将其推送到数据数组中:

loadSparepartFiles: function() {
    var vm = this;
    vm.activeSparepart.attachments = [];
    ajaxApi.loadJson('spareparts/sparepart/getFiles/'+vm.activeSparepartId, function(data) {
        for (var i = 0; i < data.files.length; i++) {
            vm.activeSparepart.attachments.push({
                filename: data.files[i]
            });
        }
    });
},

在 Chrome 中的 Vue devTools 中,我可以看到更新后的数据数组,但 DOM 列表仍然为空。

模板:

<div v-for="file in activeSparepart.attachments" class="uk-width-1-2 uk-margin-bottom">
    <a href="{{ baseUrl }}/download/sparepart/{{ activeSparepartId }}/{{ file.filename }}" target="hidden-frame" class="block-link">
        <i class="delete uk-icon-remove"></i>
        <i class="icon uk-icon-image"></i>
        <span class="title">
            {{ file.filename }}
        </span>
    </a>
</div>

The activeSparepart对象在这里初始化:

resetSparepart: function() {
    this.activeSparepart = {
        alternates: [],
        locations: [],
        logs: [],
        usages: [],
        vendors: [],
        sparepart: {},
        attachments: []
    };
    this.activeSparepartId = 'new';
},

Vue devTools 显示以下内容:


我认为问题在于你的activeSparepart.attachments不是反应性的。

阅读Vue 中的更改检测注意事项:对于数组简短的回答,或了解Vue 深度反应性.

If activeSparepart是一个对象并且您添加属性attachments附件将无法被识别...

Vue 不允许向已创建的实例动态添加新的根级响应式属性。但是,可以使用 Vue.set(object, key, value) 方法向嵌套对象添加响应式属性:

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

vue.js 更新数组后没有更新 DOM 的相关文章

  • 传递多个数组以在 codeigniter 中查看

    我的模型是这个 两个函数view和spl function view result this gt db gt get tb ourcity return result gt result array query this gt db gt
  • 如何从 React Navigation 获取之前的路线名称

    我正在尝试将以前的路线名称获取到当前屏幕 因为根据之前的屏幕名称 我必须在当前屏幕中显示 隐藏一些对象 为了获取以前的屏幕名称 我尝试过以下操作 componentDidMount const navigation this props i
  • scrollTop 在 Chrome 中不起作用,建议的解决方法也不起作用

    许多其他问题 here https stackoverflow com questions 2544979 is there a problem with scrolltop in chrome here https stackoverfl
  • 使用jquery,下拉列表选择更改时如何重定向?

    我有一个下拉列表 如果有人选择一个选项 我想根据选择重定向到另一个页面 我怎样才能通过 jquery 做到这一点 将逻辑绑定到 change 事件 并从中获取当前值 val 以确定用户应该被重定向到哪里 此示例假设位置直接存储在值本身中 m
  • javascript 中的正则表达式和分隔符

    我不太擅长正则表达式 我需要一些帮助 但我被困住了 这就是我得到的 编辑 现在工作正常 看看 http jsfiddle net oscarj24 qrPHk 1 http jsfiddle net oscarj24 qrPHk 1 这就是
  • 创建一个通用函数以将其用于其他数据

    我正在制作一个项目列表 并希望随着数量变化计算其值 但如何使该函数通用以便我可以将它用于所有行 你能建议一些最好和简单的方法 但请记住我想这样做仅限 JavaScript table thead tr th Name th th Quant
  • 如何从 HTML 图表中删除网址 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在 HTML 中创建一个图表 我正在使用 API amCharts 但问题是它在图表中显示文本 amchart 我怎样才能删除该文本
  • Javascript 搜索并替换包含方括号的字符序列

    我正在尝试在字符串 Nationality EN ESP 中搜索 EN 我想从字符串中删除它 所以我使用替换方法 代码示例如下 var str Nationality EN ESP var find EN var regex new Reg
  • Mustache.js 只允许换行,转义其他 HTML

    我正在根据用户输入创建评论 并在用户单击 提交 后使用 Mustache js 渲染它们 我意识到我可以替换用户输入换行符 n with br 呈现为 HTML 中断 例如 myString replace n g br 我意识到我可以使用
  • 是否有跨浏览器的 jQuery contentEditable 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 jQuery 插件 库 它可以使 contentEditable 属性在所有主要浏览器中正常工作 我什至可以不用 IE6
  • 用角度js中的字母过滤列表

    我在表格中显示了一个列表 我需要使用名称的第一个字母来过滤结果 在列表上方我有一个字母 A B C D 等等 单击后 字母列表将按名字过滤 例如 列表详细信息是Apple Boy Bridge点击后A Apple将显示 我必须过滤国家名称以
  • 在 for 循环中突破 Promise 块

    我有以下代码 this storeNameValidate function stores var deferred q defer console log stores for storeIndex in stores this name
  • Select2 触发器(“更改”)创建无限循环

    假设页面上有两个 select2 元素 都使用 onChange 为了以编程方式在一个 select2 元素中设置一个值 您可以使用 id1 val xyz trigger change 如果您在这两个元素之一中进行选择时想要将另一个元素重
  • 如何在 Strongloop 环回脚手架项目中覆盖基本用户?

    给定一个使用以下命令创建的全新项目 slc lb project myapp 我该如何更换 user 模型中models json带有 customer 模型放置在 models目录 客户应该有登录 注销等方法 并且 用户 不应该作为 AP
  • 如何使用 JavaScript 使 DIV 可见和不可见?

    你能做类似的事情吗 function showDiv DIV visible true or something 如果 DIV 是一个元素那么 DIV style visibility visible OR DIV style visibi
  • ajaxStart() 仅调用一次,但 ajaxComplete() 调用多次

    我想对页面上的每个 AJAX 请求进行调用 I read here http docs jquery com Ajax Events that ajaxStart 全局事件 如果启动 Ajax 请求并且当前没有其他 Ajax 请求正在运行
  • 以编程方式访问使用数据 URI 作为源的 iframe

    我正在使用 数据 URI 以编程方式创建一个 iframe 该框架加载良好 但似乎以编程方式使用 iframe 会遇到跨域安全检查 var iframeDoc document getElementById myFrame contentW
  • jquery ui 自动完成添加跨度

    我在 div 上使用 jQuery 自动完成 但我得到了 jquery 自动添加的额外范围 span class ui helper hidden accessible search test span 如何防止创建此跨度 我通过添加 CS
  • 理解“窗口”对象[重复]

    这个问题在这里已经有答案了 可能的重复 JS 窗口全局对象 https stackoverflow com questions 10035771 js window global object 如何window对象工作 我知道它是顶级对象并
  • 访问 django for 循环中的元素

    我有一个 Django 模板 其中包含以下代码 该模板创建多个按钮并尝试通过单击 在同一按钮上 删除 隐藏其中一个按钮 for h in helicopters div class btn group div

随机推荐

  • PHP 包含文件扩展名吗?

    对于 PHP 中必需 包含的文件 使用更好吗 inc扩展 vs inc php vs php扩展 有时人们使用 inc扩展 然后进行一些服务器配置以保留 inc通过网络浏览器访问文件 这might如果由知识渊博的系统管理员绝对正确地完成 那
  • 修剪所有数据库字段

    您知道 sql server 中是否有一种快速方法 通过 transact sql 可以修剪所有数据库字符串字段 没有光标 复制并粘贴输出 也适用于没有 varchar max 的 SQL 2000 如果需要 可以轻松扩展以将 GO 行添加
  • 如何显示当前登录的用户 Firebase

    mAuth FirebaseAuth getInstance mFirebaseDatabase FirebaseDatabase getInstance myRef mFirebaseDatabase getReference child
  • 分组函数(tapply、by、aggregate)和 *apply 系列

    每当我想在 R 中做一些 map py 的事情时 我通常会尝试使用apply家庭 然而 我一直不太明白它们之间的区别 如何 sapply lapply等 将函数应用于输入 分组输入 输出会是什么样子 甚至输入可能是什么 所以我经常会仔细检查
  • 如何读取 JMS 消息而不使用它们 - 使用 ActiveMQ

    我想知道是否有任何方法可以读取 jms 和 activemq 消息而不消耗它 我知道消息可以从队列中消费 但我仍然想问这个问题 您可以通过 JMS QueueBrowser 浏览队列上的消息 或者在 ActiveMQ 中您可以通过 JMX
  • 如果数据源不包含任何项目,如何在 ASP.NET C# 中隐藏转发器?

    我有一个 ASP NET 页面 它使用嵌套在另一个转发器中的转发器来生成数据列表 其作用如下
  • Pthread:为什么人们费心使用 pthread_exit?

    据我了解 当您需要终止具有返回值的线程时 pthread exit 完全等于 return 当人们可以使用一致的方式 即返回 来完成工作时 为什么 Pthread 定义这样一个重复的接口 我想到的两个原因 pthread exit 允许您从
  • 使用 Xamarin.Forms 和 Serilog 将日志写入文件

    您好 我在使用 Xamarin Forms NET Core 共享项目 和 Serilog 将日志写入 Android 设备上的文件时遇到问题 到目前为止 我已经在共享项目中安装了 Serilog 将 Serilog Serilog Sin
  • jstree select_limit 不起作用。我想设置选择限制以仅选择 3 个节点

    我的 jstree 函数在这里 我已经设定 select limit 3 但不起作用 当我运行时 我可以选择超过 3 个节点 但我需要选择不超过 3 个节点 var j1 jQuery noConflict j1 utree activit
  • sqlite3 带引号导入

    我正在尝试导入字段中包含引号的数据集合 它们目前是制表符分隔的 据我所知 根据文档 http www sqlite org cvstrac wiki p ImportingFiles sqlite shell 应该按字面解释引号 我认为这意
  • 我如何从 WordPress 中的每个类别中仅获取 1 个帖子

    我有一个名为新闻的类别 其中有许多子类别 我想要做的是从每个子类别 包括类别标题 帖子标题 附件图片 中仅获取 1 个帖子 最新 朋友们有什么建议吗
  • 如何使用 TIdHTTP 停止(取消)下载

    我正在使用TIdHTTP Get程序在一个线程中下载文件 我的问题是如何停止 取消 文件的下载 我会尝试通过抛出静默异常来取消它Abort方法中的TIdHTTP OnWork事件 此事件会在读 写操作时触发 因此在下载过程中也会触发该事件
  • 无法使用 has_secure_password、password_digest 错误

    晚上好 我有个问题 我在用has secure password导致我有一个错误undefined methodpassword digest for 但我没有这个方法 请帮忙 不知道该怎么办 我阅读了如何解决这个问题 但它对我没有帮助 这
  • MySQL 在日期时间列上选择 1 小时前或更新的记录

    我可以使用什么 where 子句来选择一小时前或更新的记录DATETIME时间戳 像这样的东西吗 我假设一个DATETIME timestamp是一个 DATETIME 字段 SELECT FROM table WHERE datetime
  • 如何将配置文件传递给scala jar文件

    我正在使用类型安全配置我的代码中包含库 然后生成一个 jar 文件 当我将 reference conf 文件嵌入到 jar 中时 该应用程序工作正常 但是是否可以将配置文件作为参数提供给 jar 例如 java DmyconfigFile
  • 向量迭代器不可解引用

    我有一个名为 Shape 的抽象基类 Circle 和 Rectangle 都是从中派生的 但是当我在 VS 2005 中执行以下代码时 我收到错误 调试断言失败 同时我没有在任何类中重载 运算符 表达式 向量迭代器不可解引用 这是什么原因
  • Nginx 位置匹配除 php 之外的所有文件扩展名

    我的 nginx 配置文件中有以下内容 它可以工作 但我不想列出每个文件扩展名 location gif jpg png css js ttf woff html htm unity3d try files uri images defau
  • Java 异常处理 - 样式

    从历史上看 我总是这样编写异常处理代码 Cursor cursor null try cursor db openCursor null null do stuff finally if cursor null cursor close 但
  • 在 PL/SQL 中将逗号分隔的字符串转换为数组

    如何将逗号分隔的字符串转换为数组 我有输入 1 2 3 我需要将其转换为数组 这是另一个更简单的选择 select to number column value as IDs from xmltable 1 2 3 4 5
  • vue.js 更新数组后没有更新 DOM

    我通过 AJAX 读取项目列表并将其推送到数据数组中 loadSparepartFiles function var vm this vm activeSparepart attachments ajaxApi loadJson spare