淘汰无线电组绑定到observableArray

时间:2014-11-12 14:01:01

标签: knockout.js binding radio-button ko.observablearray

我有一个包含我的对象数组的视图模型。我的对象的一个​​属性是一个名为minversion的布尔值,我想绑定到一个无线电组。我尝试了一些方法,但无法使其发挥作用。

这是我的视图模型

  function ViewModel() {

   var self = this;
   this.apps = ko.observableArray(@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)));

};

以下是我的输入

  <tbody data-bind="foreach: apps">
                            <tr>
                                <td style="text-align:center">

                                    <input type="radio" name="apps" data-bind="attr: { value: Id }, checked: MinVersion" />


                                </td>
                                <td data-bind="text: type"></td>
                                <td data-bind="text: Name"></td>

                            </tr>

                        </tbody>

1 个答案:

答案 0 :(得分:1)

如果您按预期使用单选按钮(一次选择一个值),则检查的值将需要在apps集合之外。如果您尝试使用它像复选框数组(0 - 一次选择多个),那么在集合中包含已检查的值是合适的。

以下是动态生成的单选按钮数组的工作示例: http://jsfiddle.net/74ht766s/1/

<div data-bind="foreach: apps">
    <input type="radio" name="apps" data-bind="attr: { value: $data}, 
        checked: $parent.selectedVersion,"/>
    <span data-bind="text: 'Version ' + $data"/>
    <br/>
</div>

var ViewModel = function() {
    var self = this;

    self.apps = [1,2,3];
    self.selectedVersion = ko.observable(self.apps[0].toString());
};