【发布时间】:2013-12-23 06:53:32
【问题描述】:
我在没有淘汰赛检查绑定的情况下苦苦挣扎。看到这个fiddle example。
我的两个问题是:
- 如何让“选定值”成为一个带有复选框/收音机输入的丰富 JS 对象?对于其他输入类型和绑定,所选值可以是丰富的类型。但是复选框/单选按钮只能是一个简单的字符串值。
一般来说,我有几个来自数据库的查找列表,它们是地图数组。例如,在小提琴示例中,我有一个国家列表:
[
{countryName: "UK", countryPopulation: 650000000},
{countryName: "USA", countryPopulation: 1700000000},
{countryName: "Canada", countryPopulation: 320000000}
]
对于我拥有的几乎每个表单输入,我都希望“选定值”是一个丰富的 JS 对象。在小提琴的单选按钮示例中,我希望 selectedCustomerType 为:
{label: 'Acquiring', value: 'A'}
不仅仅是:
'A'
-
初始化单选按钮似乎也不起作用。我可以使用第 15 行的 JS 代码使视图看起来正确:
self.selectedCustomerType = ko.observable(self.availableCustomerTypes()[0].value);
(很遗憾,我必须使用 self.availableCustomerTypes()[0].value 进行初始化,而不仅仅是使用 self.availableCustomerTypes()[0]。)
但即使视图看起来正确,html 绑定也不会显示任何内容(HTML 的第 21 行)。
<div>
You have chosen customer type
<span data-bind:"value: selectedCustomerType()"></span>.
</div>
但在输出中未显示 selectedCustomerType。如何正确初始化 selectedCustomerType?
【问题讨论】:
标签: knockout.js