比方说,我有一个设置在嵌套/命名空间的对象淘汰赛绑定列表,类似这样:将嵌套对象中的值与相应的敲除绑定进行匹配?
var bindings = {
event: {
eventid: ko.observable(),
office: ko.observable(),
employee: {
name: ko.observable(),
group: ko.observable()
}
},
...
}
现在让我们说有一些不同的数据集可能会被加载到这一点 - 这样一个做一个Ajax查询并得到一个JSON结果是这样的:
{
"defaults": {
"event": {
"eventid": 1234,
"employee": {
"name": "John Smith"
}
},
...
}
}
请注意,不是每个绑定有一个默认值 - 但所有默认值都映射到一个结合。我想要做的是将默认值读入它们对应的任何敲除绑定。
肯定有办法traverse a nested object并阅读它的值。为该示例添加额外的参数,我可以跟踪默认的完整键(例如event.employee.name)。我被难倒的地方是采用default
的钥匙,并用它来瞄准相关的淘汰赛结合。很明显,即使我有key = "event.employee.name"
,bindings.key
也没有引用我想要的。我只能想到使用eval()
,这让我的口感不好。
如何使用一个键来引用不同对象中的相同位置?也许淘汰赛提供了一种方法来自动映射一个对象到它的绑定,我只是忽略了它?任何见解都会有所帮助。提前致谢!
呵呵,那就来看看吧。这很聪明,我从来没有想过在一个可观察的元素中粘贴一个函数。希望我能+2这个! – CodeMoose 2014-09-19 14:41:48
很高兴帮助:-) – 2014-09-21 00:55:05