比方說,我有一個設置在嵌套/命名空間的對象淘汰賽綁定列表,類似這樣:將嵌套對象中的值與相應的敲除綁定進行匹配?
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