Javascript 使用knockout.js绑定复杂的JSON对象
我是使用Knockout.js的新手,刚刚使用Javascript 使用knockout.js绑定复杂的JSON对象,javascript,json,knockout.js,knockout-mapping-plugin,Javascript,Json,Knockout.js,Knockout Mapping Plugin,我是使用Knockout.js的新手,刚刚使用ko.mapping.js安装/实例化了一个ViewModel绑定,结果发现我得到了一个部分绑定 使用下面列出的示例代码,我们可以看到绑定适用于JSON对象中的简单数据,但不适用于复杂数据。 这里有一个 复杂JSON对象: var json = { "a": "A", "b": [{ "b1": "B1", "b2": "B2", "b3": [{ "one": "
ko.mapping.js安装/实例化了一个ViewModel
绑定,结果发现我得到了一个部分绑定
使用下面列出的示例代码,我们可以看到绑定适用于JSON对象中的简单数据,但不适用于复杂数据。
这里有一个
复杂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>
我错过什么了吗
在Knockout.js中,是否可以使用Knockout.mapping.js将复杂的JSON对象绑定到viewmodel
如果不是,使用这个示例…我们如何使用knockout.js绑定这个复杂的JSON对象
我能找到的最近的StackOverflow post就是这个,
我已经尝试了好几个小时使用多种方法,但是没有成功地使用ko.mapping.js
来进行绑定
不幸的是,Knockoutjs.com文档()没有说明插件是否可以实现这一点。ko.mapping.js隐式处理简单和复杂的对象。实际上,用于访问嵌套对象的绑定存在问题
如您所见,属性b是一个数组,因此ko.mapping将其转换为ObservalArray.so绑定如下:-
<div data-bind="text: a"></div>
<div data-bind="text: b()[0].b1"></div> //As b is array
<div data-bind="text: c"></div>
地图的可视化也非常有用。
<div data-bind="text: a"></div>
<div data-bind="text: b()[0].b1"></div> //As b is array
<div data-bind="text: c"></div>
{
"a": "A",
"b": [
{
"b1": "B1",
"b2": "B2",
"b3": [
{
"one": "One",
"two": "Two"
}
]
}
],
"c": "C",
"__ko_mapping__": {
"ignore": [],
"include": [
"_destroy"
],
"copy": [],
"observe": [],
"mappedProperties": {
"a": true,
"b[0].b1": true,
"b[0].b2": true,
"b[0].b3[0].one": true,
"b[0].b3[0].two": true,
"b[0].b3": true,
"b": true,
"c": true
},
"copiedProperties": {}
}
}