项目从 Knockout 可观察数组中删除,但未从 html 表中删除

2023-12-13

我有一个问题可以说明我的问题:http://plnkr.co/edit/PzBrcTX0Vnn01xWy4dk6

这是一个包含“设置”列表的表。它使用 Footable,以便可以对列表进行排序以及 Footable 的其他功能。

场景1:运行,按下一行或多行的删除设置按钮。请注意,按下按钮后该行将被删除。这是预期的行为。

场景2:运行,单击设置列标题并确保该列已排序,按下删除按钮。请注意,该行并未从视图中删除。

如果您在 Application Settings.js 中放置断点:

var removeItem = function (item) {
    items.remove(item);
};

您可以看到,在这两种场景中,可观察数组都按预期删除了项目,但在场景 2 中,视图未按预期更新。


问题来自于每个节点周围的空文本节点<tr>元素。这foreach绑定还跟踪这些文本节点。看https://github.com/knockout/knockout/pull/709讨论为什么不能将它们作为一般规则忽略。另一方面,您的自定义绑定可以将它们删除。

See how 可淘汰排序这样做(出于类似的原因):

var nodes = Array.prototype.slice.call(element.childNodes, 0);
ko.utils.arrayForEach(nodes, function(node) {
    if (node && node.nodeType !== 1) {
        node.parentNode.removeChild(node);
    }
});

您需要确保它之前运行过foreach。我修改了你的绑定来做到这一点:http://plnkr.co/edit/hS6Gb2xLfabSj9K8l03y?p=preview

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

项目从 Knockout 可观察数组中删除,但未从 html 表中删除 的相关文章

随机推荐

  • pthreads 和 C++

    我正在使用 C 和 pthreads 到目前为止一切顺利 如果它是静态的 我可以访问一个类成员函数 并且我读到 如果我将 this 作为 pthread create 的参数传递 我可以访问普通的类成员函数 因为 c 在幕后这样做 但我的问
  • .Net 中的 Oracle DataReader 存在重大性能问题

    我有一些 Oracle 过程 它们生成 返回大量数据 我需要将这些数据写入文件 我目前正在尝试使用数据读取器来完成 它似乎工作正常 我已经成功生成了一个 479mb 的文件 没有任何问题 从我检索dataReader到完成文件只用了不到4分
  • 尝试从 UDF 执行 Spark sql 查询

    我正在尝试使用 scala 在 Spark 框架中编写一个内联函数 它将接受字符串输入 执行 sql 语句并返回一个字符串值 val testfunc String gt String arg1 String gt val k sqlCon
  • 如何在 Windows 批处理脚本中检查文件的大小?

    我想要一个批处理文件来检查filesize是一个文件的 如果它大于 somany kbytes 它应该用 GOTO 重定向到其他地方 Example check for filesize IF file filesize thing Big
  • 未定义的偏移 PHP 错误,数组已定义

    此处出现未定义偏移错误 显然来自 newval 数组 请注意 exp 标记不是 PHP 而只是我的 CMS 系统的 SQL 查询 它为我创建了 bags 数组
  • android mmap 失败:参数无效(errno 22)

    我正在移植 编译androidvnc服务器对于我的 Android 设备 但是当我运行它 以 root 身份 时 我不断收到 mmap 错误 有问题的代码如下所示 Android does not use dev fb0 define FB
  • Javascript date toLocaleString 是否考虑 DST?

    我已经设置了 UTC 截止日期 如下所示 我想知道 toLocaleString 方法到底会在用户的本地计算机上对其执行什么操作 例如 如果他们位于认可夏令时的时区 它会考虑夏令时吗 或者我是否需要插入额外的代码来检查用户所在位置 然后修复
  • 是否可以同时执行 if --- else 控制语句的 if 和 else 部分? [复制]

    这个问题在这里已经有答案了 可能的重复 同时执行 if 和 else 块 是否可以设置一些条件 以便 if else 控制语句中的 if 和 else 部分都可以在没有任何警告或错误的情况下执行 不使用 Yes by forking if
  • 如何使精灵指向鼠标。 XNA C#

    如果你看一下这张图链接文本 我需要通过仅知道直角三角形所有边的长度来找到角 A 我不知道三角函数 需要一些帮助 您的帖子实际上有两个问题 如何使精灵指向鼠标 XNA C 您必须计算精灵位置和鼠标位置之间的方向 这可以使用三角函数来完成 在本
  • 使用scanner.nextLine() [重复]

    这个问题在这里已经有答案了 我在尝试使用 java util Scanner 中的 nextLine 方法时遇到了麻烦 这是我尝试过的 import java util Scanner class TestRevised public vo
  • 如何在超级账本结构的视图页面上使用节点js显示当前哈希、先前哈希

    我正在尝试像链表一样遍历区块链 我只通过提供的块号从块中找到以前的哈希值 如何使用节点js获取块的当前哈希值 我有兴趣在视图页面上显示 节点 sdk 不提供当前哈希值 但可以使用与此类似的代码从块的标头计算它 var sha require
  • 在 C 中传递多维数组

    我目前正在尝试学习C 但我遇到了一个我无法解决的问题 考虑 include
  • 使用ExtAudioFile读取音频文件时,是否可以不连续地读取音频浮动?

    我正在尝试从 mp3 文件中绘制波形 我已经使用 Core Audio SDK 文档中提供的 ExtAudioFileReadTest 应用程序成功提取了浮点数 链接 http stephan bernsee com ExtAudioFil
  • 如何从自定义列表视图中单击项目启动不同的活动?

    我遵循了许多教程 例如http www javacodegeeks com 2013 09 android listview with adapter example html还关注了这里提出的问题如何使自定义ListView在单击列表项时
  • DynamoDB“设置”值是 CDRT 吗?

    另有说法if N gt gt 1客户端同时添加 10 000 个唯一值使用 DynamoDB 设置 类型updateItem and ADD 以某种方式保持在规定的限度内 下一次一致性读取时 该集合的大小将始终为 10 000 吗 我所说的
  • mp3 音频适用于所有浏览器,但不适用于 IE9

    我有三个 mp3 音频文件 它们在所有浏览器中都可以正常播放 但在 IE9 中只能播放 1 x 秒 除非我将 控制 更改为 自动播放 在这种情况下它播放得很好 然后我收到了 wav 格式的原始未编辑文件 我自己将其编码为mp3 但遇到了同样
  • Javascript - 替换“%20”空格

    var loc array document location href split var linkElement document getElementById waBackButton var newT document create
  • 仅当按下特定按钮时才进行淘汰验证

    https github com ericmbarnard Knockout Validation wiki Native Rules 我在 MCV3 页面上使用淘汰验证 我的情况是我有两个按钮 一是添加到收藏 二是保存 添加到集合会根据需
  • 使用 xcode 4 实施适用于 iPhone 的 Facebook Connect

    我在使用 Facebook Connect 时遇到问题 我 尝试 遵循位于http www mobisoftinfotech com blog iphone iphone fbconnect facebook connect tutoria
  • 项目从 Knockout 可观察数组中删除,但未从 html 表中删除

    我有一个问题可以说明我的问题 http plnkr co edit PzBrcTX0Vnn01xWy4dk6 这是一个包含 设置 列表的表 它使用 Footable 以便可以对列表进行排序以及 Footable 的其他功能 场景1 运行 按