项目从 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 表中删除 的相关文章

  • Internet Explorer 中的淘汰赛验证错误?

    在我的剃刀观点中 使用knockout http knockoutjs com据说敲除验证 https github com ericmbarnard Knockout Validation我添加以下行 以实际开始使用 ko 验证 Scri
  • 如何使用淘汰赛映射插件添加新项目

    我正在尝试一个淘汰制图样本 我想我已经快完成了 我似乎无法向 viewModel foos 添加新的 Foo 谁能看到我在这里错过了什么 var Foo function data var self this self id data id
  • 为什么我不能在淘汰赛中将数据连接到可观察数组

    我正在尝试将服务器中的元素添加到淘汰赛中的可观察数组中 这是我的视图模型 function ArticlesViewModel var self this this listOfReports ko observableArray self
  • Breeze 和 Knockout 中的验证

    我最近使用 Knockout 和 ASP NET MVC4 将 Breeze 添加到项目中 我真的很喜欢 Breeze 它节省了大量的编码工作 我使用过 Knockout 验证 喜欢它如何验证数据输入时的属性字段文本框以及错误消息的显示方式
  • Knockout无法识别手动点击

    这是样本http jsfiddle net HhXGH 57 http jsfiddle net HhXGH 57 我正在通过 jquery 单击单选按钮 但 knockout js 无法识别它 它仍然显示第一个单击的值 p Send me
  • 淘汰赛js和全球化

    我不知道如何使用淘汰赛 js 和非美国语言环境来处理计算 我的逗号是 并且使用 jquery globalization 插件正确验证 但淘汰计算给我一个 NaN knockout js 是否以任何方式支持这一点 或者是否存在任何解决方法
  • KnockoutJS:在 Select 中的每个选项上调用单击事件

    我希望每当用户单击 SELECT 元素中的选项时 Knockout 都会调用一个事件 这是我的 JavaScript function ReservationsViewModel this availableMeals mealName S
  • 如何从 Knockoutjs toJS() 中排除某些属性

    我有以下模型 var model A One B Two C Three 我将各种 UI 元素绑定到这些字段 效果很好 不过 我将模型转换回 JavaScript 对象 以便可以将任何更改保存到服务器 var goingToServer k
  • 如何将复选框绑定到值的倒数?

    我有一个情况 当我需要将一个复选框和另一个 DOM 元素的可见性绑定到我的 viewModel 的布尔属性的逆时
  • Knockout :找出哪个可观察触发了计算

    我有一个具有多个可观察值的对象 计算中有没有一种方法可以知道哪些可观察的变化 从而知道哪个可观察触发了计算 先感谢您 马修 如果没有详细说明您想要实现的目标 我将发布此内容 希望它能有所帮助 跟踪更改的一个简单方法是使用 subscribe
  • Typescript 中此子范围的问题

    This is ALMOST和其他人一样this到目前为止 我已经读过范围界定问题 除了一个细微的差别之外 这使得提出这个问题变得有意义 imo 现在最初我的问题是范围this使用 Knockout 和 Typescript 因此给出以下内
  • Knockout ObservableArray 不更新 HTML Foreach

    所以我有一个可以正常工作的 observablearray 但 UI 没有更新 我读过很多人遇到这种类型的问题 但我没有看到 所以 HTML 是 tbody tr td span class label label success Yup
  • Edge 中的 Javascript 仅适用于打开的 devtools

    我遇到的问题是 在 MS Edge 中 我的图像映射功能只能部分工作 它由淘汰赛 FW 提供动力 在更大的图像映射上 它不会将整个图像映射注册到视图模型中 因此 图像映射的所有悬停效果和单击样式都会停止工作 然而 这只是大图像地图的问题 还
  • 使用 Knockout 使用多个字段/列和控件来过滤 ViewModel 数据

    我是 KnockoutJS 的新手 但到目前为止我很喜欢它 我想做的是使用表单上的多个字段 列和控件来过滤我的视图模型的数据 但我不知道该怎么做 让我 希望 进一步解释一下 我有一个 viewmodel 可观察的数据数组 其中填充了来自后端
  • 重新评估仅依赖于可观察数组的淘汰赛计算

    我的 Appmodel 由一系列可观察的评论组成 self comments ko observableArray Default Value is an empty array Here comes some code to initia
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • 淘汰赛绑定,每个都可进行自定义

    我这里有一个情况 用于淘汰每个带有定制的绑定 这是我的代码 div div table tbody tr td td td td tr tbody table div div
  • knockout valueUpdate 无法与 Pagedown 一起使用?

    我的看法有以下几点
  • Knockout.js - 数据绑定文本默认值

    在 knockout js 中 我有一个非常标准的字段 如下所示
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行

随机推荐

  • 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 运行 按