我在我的项目中实现了observableDictionary。我有一个相当复杂的哈希,但我不确定如何访问密钥。
如果我有以下字典并且想要获得头发颜色怎么办?
var person = {
name: ‘Joe Bloggs’,
height: 180,
hair: {
color: ‘brown’,
length: ‘long’
}
}
基于github示例,我认为它与此类似:
<div data-bind=”foreach: person.items”>
<div data-bind=”if: hair”>
<div data-bind=” foreach: value.items”>
<span data-bind=”text: $data.color”></span>
</div>
</div>
</div>
非常感谢任何帮助。
答案 0 :(得分:0)
你可以用几种不同的方式做到这一点
1.使用此功能,您可以访问嵌套对象的所有键和值
<div data-bind="foreach: person.items">
<div data-bind="if:key()=='hair'">
<div data-bind="foreach: value().items">
<div>
<span data-bind="text:key"></span>
<span data-bind="text:value"></span>
</div>
</div>
</div>
</div>
使用
var person = {
name: 'Joe Bloggs',
height: 180,
hair: new ko.observableDictionary({
color: 'brown',
length: 'long'
});
};
2.如果您只想获得头发颜色属性,这可能会更容易
<div data-bind="foreach: person.items">
<div data-bind="if:key()=='hair'">
<span data-bind="text: value().color"></span>
</div>
</div>
使用
var person = {
name: 'Joe Bloggs',
height: 180,
hair: {
color: 'brown',
length: 'long'
}
};