这是我的html代码:
<span data-bind="foreach: complimentaryCustomerList">
<label><span data-bind="text: ($data.Surname + ', ' + $data.GivenName)"></span>
<input type="radio" name="companion" data-bind="value: $data, checked: $parent.complimentaryCustomerSelection" />
</label>
</span>
我的问题是self.complimentaryCustomerSelection()
显示为" [对象对象]",一个实际的字符串。有没有办法从数组中传递对象?
看来,您希望您需要可用于无线电键的复选框checkedValue
绑定/处理程序的功能。可悲的是,无线电布顿并不那么简单,需要一些特殊的考虑因素,如本文中可用的两个示例所示
而不是在这些示例中使用.grep
,而是使用JSON.parse
和ko.toJSON
在JS和JSON之间序列化对象(示例)。
<input type="radio" name="companion" data-bind="value: function(){return ko.toJSON($data)}(), checked: $parent.complimentaryJSONHolder "/>
vm.complimentaryJSONHolder.subscribe(function(nv){
vm.complimentaryJSHolder(JSON.parse(nv))
})
任何一个解决方案都会"工作",但最终听起来您可能会使用ComboBox/Select更好,因为它们对对象具有更好的支持/绑定。
注意:用http://cdnjs.cloudflare.com/ajax/libs/libs/knockout/2.2.1/knockout-min.js