如何从 Knockoutjs toJS() 中排除某些属性

2024-04-19

我有以下模型:

var model = {
   A: 'One',
   B: 'Two',
   C: 'Three'
};

我将各种 UI 元素绑定到这些字段,效果很好。不过,我将模型转换回 JavaScript 对象,以便可以将任何更改保存到服务器:

var goingToServer = ko.toJS(model);

goingToServer将包括属性 A、B 和 C。但是,假设属性 C 是一大块永远不会改变的数据。我想避免将其发送回服务器。

有没有办法制作toJS() only将模型转换回 JavaScript 对象时包含一组预定义的字段?

我一直在调查的一件事是淘汰赛映射插件 http://knockoutjs.com/documentation/plugins-mapping.html。它有一个名为include其记录如下:

当你的视图模型转换回 JS 对象时,默认情况下 映射插件将仅包含属于您的一部分的属性 原始视图模型,除了它还将包括 淘汰生成的 _destroy 属性,即使它不是您的一部分 原始对象。但是,您可以选择自定义此数组:

但是,该插件似乎无法按记录工作,如下所示ko.mapping.toJS()即使我传入一个,仍然会包含 A、B 和 Cinclude的数组['A', 'B']。我猜这个功能的目的是包括额外的原始模型中不存在的字段。

有没有一种方法可以在将模型转换回 JavaScript 对象时排除某些属性,而无需执行一些黑客操作,例如生成对象并在发送到服务器之前手动删除我不需要的属性?


你有没有尝试过ignore关键词?它的用法与 include 类似:

var mapping = {
    'ignore': ["propertyToIgnore", "alsoIgnoreThis"]
}
var viewModel = ko.mapping.toJS(data, mapping);

当你对服务器数据进行原始映射时,你可以只使用ignore,那么当你将其转换回JS时,它根本不会出现在你的对象上。

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

如何从 Knockoutjs toJS() 中排除某些属性 的相关文章

随机推荐

  • 如何将文件的内容与列最后一个数字的增量连接起来

    我有一个包含一些内容的文件 需要重复第 n 次并添加最后一列号的增量 Input content of a file TCTA 7 ccta TCTA 1 TCTA 8 ccta TCTA 1 TCTA 9 ccta TCTA 1 TCTA
  • 如何为命令 net user 在列表中返回的每个用户运行批处理文件?

    我的目标是制作一个通用代码 循环遍历计算机中的所有用户帐户名称并将输出发送到批处理文件 net user 命令输出用户列表 但我想将每个用户名分配给一个参数 所以我应该使用for f命令去做 这可能看起来很简单 但请记住用户名可能在任何位置
  • FFT 的窗口大小与数据长度

    我正在尝试对流音频数据进行快速频谱分析以捕获元音 类似于 JLip sync 使用 PyAudio 在短时间内 0 0625 秒 捕获小块 1024 的语音数据 使用 numpy fft 进行分析 并使用 numpy hanning 窗口消
  • 你如何知道 NSURLSession 对象何时已被 iOS 失效?

    我在测试中发现一个错误 偶尔会收到以下 iOS 错误 标识符为 GUID 的后台 URLSession 已存在 即使我在每次测试后的清理调用中对 NSURLSession 调用 invalidateAndCancel 我正在寻找一种方法来等
  • 如何通过 SOAP API 禁用/停用 SalesForce 用户?

    我想使用 SOAP API 以编程方式禁用用户 我怎样才能做到这一点 我正在使用合作伙伴 API 并且拥有开发人员版本 我已设置管理用户权限 我已经经历过this http www salesforce com us developer d
  • 存储徽章标准的最佳方式?

    我一直在考虑如何在新网站上实现类似于SO的徽章功能 存储徽章标准的最佳方式是什么 两个想法 All code 第二系统 创建一个元架构来定义徽章及其标准 在数据库中存储一些信息 并让代码查询它以找出徽章及其标准 还有更好的方法吗 Rules
  • 如何实现 *object* 来改进我的时钟示例 javascript 程序

    这项工作的目标是理解和发挥某些意义object我听说过的概念 关于赏金 有很多不同的方式 方法可以做到这一点 My tries https stackoverflow com a 13219373 1765658不是很干净 为了添加第二个时
  • 在购物车页面上显示分级定价

    如果我在这个页面上 http 结账 购物车 对于购物车中的产品 我想显示分级定价 与商品页面上显示的定价相同 如果有 我的尝试是添加
  • 正则表达式查找第二个和第三个斜杠之间的文本

    我想捕获字符串中第二个斜杠之后和第三个斜杠之前出现的文本 例子 ip地址 数据库名称 我只需要捕获数据库名称 数据库名称可能包含字母 数字和下划线 谢谢 如何访问它取决于您的语言 但您基本上只需要一个捕获组来捕获第二个和第三个 之间的任何内
  • 以编程方式查找 Android 系统信息

    我正在尝试以编程方式查找 Android 设备的系统信息 具体来说 RAM 中央处理器速度 核心 架构等 是否有任何 Android 类指定此信息 我一直在使用 android board 库 但它似乎没有我想要的一切 让我告诉你我做了什么
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 从部署配置中配置 Pod 的重启策略

    我们正在使用 Openshift Kubernetes 的托管版本 我正在努力将部署配置创建的所有 pod 的 pod 重启策略从 始终 设置为 从不 但我不确定 yaml 中的位置来做出这个改变 我们的部署配置如下所示 kind Depl
  • 如何在 Ruby 中一次读取一个文件?

    我想迭代读取文件中固定数量的字节 然后返回它们 我的代码如下 我从互联网上的一个例子中获取了它 File open textfile txt do file while buffer file read size do yield buff
  • 在目标检测中使用步长为 1 的最大池化层的目的是什么

    我正在使用单次探测器 SSD 更具体地说这个实现 https github com pierluigiferrari ssd keras在喀拉斯 当我检查 SSD300 时 正如我注意到的 这也适用于 SSD512 我注意到在每个卷积组之后
  • 在哪里可以读取 Visual Studio 2017 for Mac 中的控制台输出?

    安装了新的 Visual Studio Community for Mac 只是尝试运行一些现有的命令行应用程序 Console WriteLine 在 VisualStudio for Mac 上的哪里输出 可以在终端上重定向吗 谢谢 查
  • 系统调用超时?

    我正在使用 unix system 调用 Gunzip 和 gzip 文件 对于非常大的文件 有时 即在集群计算节点上 这些文件会被中止 而其他时候 即在登录节点上 它们会通过 系统调用可能花费的时间是否有一些软限制 还能是什么 调用线程应
  • 按第一行数字排序

    我有一个包含近 900 行的 Excel 文件 我已将其保存为制表符分隔的 txt 文件 我想按第一列中给出的数字 范围在 0 到 2250 之间 对文本文件进行排序 其他列都是数字和不同长度的字母 例如 我的文件 txt 0251 abc
  • paypal沙箱账户失败

    我正在尝试创建一个贝宝沙箱测试帐户 我填写了所有字段 提供了一个复杂的密码和 100 美元作为余额 在创建并检查帐户的配置文件后 我仍然收到错误消息 我们在创建此沙盒帐户时遇到了一些问题 请删除它并重试 PayPal 余额为 0 我已经尝试
  • 使用 Swift Mailer、GMail 和 PHP 发送电子邮件,权限被拒绝错误

    我下载了 SwiftMailer 4 1 6 以使用 Gmail 发送电子邮件 我为此目的编写了以下代码
  • 如何从 Knockoutjs toJS() 中排除某些属性

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