javascript - Knockout - 更新 View 模型中的 observableArray

标签 javascript knockout.js

我希望将 View 模型作为 JSON 字符串保存到数据库中。我的想法是,我可以通过读回 JSON 并使用直接方法加载 View 模型的数据来重新加载 View 模型:

来自 knockout 文档:

// Load and parse the JSON
var someJSON = /* Omitted: fetch it from the server however you want */;
var parsed = JSON.parse(someJSON);

// Update view model properties
viewModel.firstName(parsed.firstName);
viewModel.pets(parsed.pets);

一切都很好,但是我已经初始化了我的模型,并且只是用我已经保存的模型进行了更新,我看不到如何在数组的下拉列表中选择最初选择的条目-下拉列表。

换句话说,当我保存模型时,宠物下拉列表被选择为“猫”。然后,我将下拉列表选择更改为“Dog”。重新加载保存的模型时,我需要将下拉列表选择重置为“Cat”。

我对此有点担心,因为我有一些对象数组也需要从保存的模型中读入,而且看起来很难做到。

欢迎任何想法或建议:)

最佳答案

您正在寻找的是 Knockout 的映射插件。 http://knockoutjs.com/documentation/plugins-mapping.html

它具有处理 JSON 和可观察值的方法。

所以在你的例子中你可以这样做:

var viewModel = ko.mapping.fromJSON(someJSON);

当您准备好返回服务器时:

var jsonData = ko.mapping.toJSON(viewModel);

如果您需要的话,还有对象文字助手(ko.mapping.toJS 和 ko.mapping.fromJS)

关于javascript - Knockout - 更新 View 模型中的 observableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734561/

相关文章:

javascript - 简化表单验证

javascript - Knockout.js 数据绑定(bind)不起作用

来自 Knockout.contextmenu 的 Javascript 函数调用

javascript - Chrome VM 文件重复 javascript

javascript - Div 不会在页脚中垂直居中

javascript - 在 knockout 中通过ajax绑定(bind)选择

knockout.js - 在 KnockoutJS 中触发 beforeRemove、afterAdd 处理程序

javascript - 可见绑定(bind)无法正常工作

javascript - Moment.js时间格式错误

javascript - js 只拆分直到第一个给定的字符