如何从 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() 中排除某些属性 的相关文章

  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA
  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • 使用 javascript 更改 div 颜色

    div style height 20px width 100 background color 000000 div br
  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • Angular 2 Material 2 日期选择器日期格式

    我不知道如何更改材料2日期选择器的日期格式 我已阅读文档 但我不明白我实际上需要做什么 datepicker默认提供的输出日期格式为f e 6 9 2017 我想要实现的目标是将格式更改为类似的格式9 Jun 2017或任何其他 文档htt
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • 如何防止 gulp-notify 破坏 Windows 中的 gulp-watch?

    我正在使用吞咽通知 https www npmjs org package gulp notify插入 这是我如何在 gulpfile js 中实现它的示例 您可以看到我也在使用 gutil 和 livereload 我不知道它们是否发挥任
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 确定元素是在页面折叠上方还是下方

    我有一些页面有多个输入框 用户可以在其中输入文本 在单击 下一步 按钮之前 需要填写其中一些内容 我弹出验证错误供用户查看 但是如果问题不在页面上 我希望页面滚动到它 而不是他们必须搜索丢失 错误的字段 我有一个滚动到位 但我无法确定要滚动
  • 使用 JavaScript 生成 PDF 文件

    我正在尝试将 XML 数据从网页转换为 PDF 文件 并且希望能够完全在 JavaScript 中完成此操作 我需要能够绘制文本 图像和简单的形状 我希望能够完全在浏览器中完成此操作 我刚刚写了一个名为jsPDF https github
  • 如何调用 google 的 getBasicProfile() 来仅单击按钮即可登录 google?

    我在我的网站上使用谷歌登录
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • Firebase 警告:使用 Firebase Cloud Function 搜索数据时使用未指定的索引

    我构建了一个 Firebase 云函数 用于查找 IsNotificationEnabled 值等于 true 的用户 我的部分职能 export const sendPushNotification functions https onR
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks

随机推荐

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

    我有一个包含一些内容的文件 需要重复第 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