将复杂的json对象绑定到knockout下拉菜单

时间:2013-04-16 02:43:44

标签: javascript knockout.js

我有一个复杂的对象绑定到下拉列表。 See the jsfiddle

  1. 这是绑定到下拉菜单的复杂对象的正确方法。

  2. 下拉列表必须绑定到初始值(当前正在工作)

  3. 在下拉列表中更改选定的索引需要更新挖空对象。这有点工作。调用save时会更新对象,因此下拉的对象值将传递给Format对象。 - 但是..此值未在UI中更新。

  4. 我不确定是否需要一些工作才能将格式化为可观察的映射。 SelectedFormat的值似乎永远不会从第一次加载改变。

    任何有关更新对象的ui和文本输出的帮助都将不胜感激。

    编辑:提出要求更清晰的问题

    code on js fiddle
    

1 个答案:

答案 0 :(得分:2)

1)没有比这更容易,只需使用optionsText指出像

这样的成员
optionsText: 'Name'

对象引用已经隐含了optionsValue,所以你可以跳过它,如果你想明确设置它,你可以在那里做同样的事情,只需指向成员optionsValue:$ data但不需要它。换句话说,这会http://jsfiddle.net/QrvJN/7/

2)值和选项绑定在对象引用上匹配,因此如果初始值和选项列表不共享引用,则需要自己匹配它们。你这样做有点奇怪,我为此做了一个约束来处理问题http://jsfiddle.net/ewSU2/

3)如果你检查我的解决方案2)

,则不需要