从敲除foreach循环中的Radio Element中获取JavaScript对象



这是我的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.parseko.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

最新更新