【发布时间】:2014-08-03 01:16:27
【问题描述】:
我是使用 Knockout.js 的新手,刚刚使用 ko.mapping.js 安装/实例化了 ViewModel 绑定,却发现我得到了部分绑定。
使用下面列出的示例代码,我们看到绑定适用于简单数据,但不适用于 JSON 对象中的复杂数据。 这是Fiddle
复杂的 JSON 对象:
var json = {
"a": "A",
"b": [{
"b1": "B1",
"b2": "B2",
"b3": [{ "one": "One", "two": "Two"}]
}],
"c": "C"
}
要绑定的 HTML 元素:
<div data-bind="text: a"></div>
<div data-bind="text: b.b1"></div>
<div data-bind="text: c"></div>
Javascript ViewModel/绑定:
var vm = {};
vm = ko.mapping.fromJS(json);
ko.applyBindings(vm);
我错过了什么吗?
在 Knockout.js 中,是否可以使用 knockout.mapping.js 将复杂的 JSON 对象绑定到视图模型?
如果不是,使用这个例子......我们如何使用 knockout.js 绑定这个复杂的 JSON 对象?
我能找到的最接近的现有 StackOverflow 帖子是这个,Knockout mapping complex object
我已经尝试了几个小时,现在使用多种方法,但未能成功让您 ko.mapping.js 进行此绑定。
不幸的是,Knockoutjs.com 文档 (http://knockoutjs.com/documentation/plugins-mapping.html) 没有说明该插件是否可以实现这一点。
【问题讨论】:
标签: javascript json knockout.js knockout-mapping-plugin