Html knockoutjs和选中的复选框绑定

Html knockoutjs和选中的复选框绑定,html,css,knockout.js,Html,Css,Knockout.js,我很难让knockoutjs检查绑定正常工作。不知道我是不是做错了什么。我有这段html <ul data-bind="foreach: ListItems" > <li style="padding-left: 0px; margin-left: 0px; color: white; font-size: 12px;"> <div class="title"

我很难让knockoutjs检查绑定正常工作。不知道我是不是做错了什么。我有这段html

 <ul data-bind="foreach: ListItems" >
                        <li style="padding-left: 0px; margin-left: 0px; color: white; font-size: 12px;">
                            <div class="title" style="margin-right: 3em; line-height: 20px;">
                                <input type="checkbox" data-bind="checked: IsActive" />

                                <label data-bind="text: Quantity, disable: IsActive"</label>
                                <label data-bind="text: Description, disable: IsActive" ></label>

                            </div>
                        </li>
                    </ul>
所以问题是,在这里选中复选框实际上什么也做不了。它应该禁用其他标签,但它没有。所有其他值都正确显示,如果执行data bind=text:IsActive,我可以通过复选框看到应该更改的值,但它从不更改

编辑:以下建议:

var mydata = ko.observableArray([
            {
                Categories: ko.observableArray([
                      {
                          Description: "Dairy", ListItems: ko.observableArray([
                          { Description: "Eggs", Quantity: "1 Dz.", IsActive: ko.observable(false) },
                           { Description: "Milk", Quantity: "1 Gallon", IsActive: ko.observable(false) }
                          ])
                      },
                      {
                          Description: "Produce", ListItems: ko.observableArray([
                              { Description: "Lettuce", Quantity: "1 Head", IsActive: ko.observable(false) },
                              { Description: "Oranges", Quantity: "5 ea.", IsActive: ko.observable(false) },
                              { Description: "Greenbeans", Quantity: "1 Thingy", IsActive: ko.observable(false) },
                          ])
                      },
                ])
            }
    ]);

您遇到的问题是,您的数据是一个普通的JSON对象,并且只会绑定一次

要获得您正在寻找的双向绑定行为,您的对象需要是“可观察的”,例如:

var mydata = ko.observable({
    Categories: ko.observableArray([
      { IsActive: ko.observable(true) }
    ])
});

请注意,由您决定您的结构中哪些项目需要被观察;这将取决于您希望绑定的行为。

能否更具体地说明问题所在?列表项是否正确显示,复选框是否未选中/未选中,或者是其他原因?opps。好的,编辑并添加到底部。真不敢相信我忘了最重要的部分。我按照你的指示做了,请参见上面的编辑。仍然没有禁用后面的标签。哦,你不能禁用标签…但是可以禁用输入。
var mydata = ko.observable({
    Categories: ko.observableArray([
      { IsActive: ko.observable(true) }
    ])
});