Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用数组在敲除中绑定复选框_Arrays_Checkbox_Knockout.js - Fatal编程技术网

Arrays 使用数组在敲除中绑定复选框

Arrays 使用数组在敲除中绑定复选框,arrays,checkbox,knockout.js,Arrays,Checkbox,Knockout.js,我有一个关于删除的问题,这是我用HTML和Javascript编写的代码,你能告诉我我的代码出了什么问题吗?当我点击复选框时,相关的输入没有被选中 <input type="checkbox" data-bind="checked: isWaived(0)"> <div data-bind="visible: isWaived(0)" > <div class="alert"> You have waived coverage for

我有一个关于删除的问题,这是我用HTML和Javascript编写的代码,你能告诉我我的代码出了什么问题吗?当我点击复选框时,相关的输入没有被选中

<input type="checkbox" data-bind="checked: isWaived(0)">
<div data-bind="visible: isWaived(0)" >
    <div class="alert">
        You have waived coverage for this member0.
    </div>
</div> 
这是这个脚本的提琴页

将您的绑定(单选按钮上的
选中的
绑定和div上的
可见的
按钮)替换为以下内容:

members()[0].isWaived

问题是,虽然敲除可以从值
isaboved(0)
中读取,但它不能写入该值,因为它是对函数求值的结果——它不是可观察的。这里我们想要观察的是
成员的
属性,上面的语法是如何将其传递给Knockout。

您的javascript可能有点过度设计。使用正确的绑定,您可以从根模型中删除iswave和DoWave函数

HTML

members()[0].isWaived
<!-- ko with:members()[0] -->
<div>
    <input type="checkbox" data-bind="checked:isWaived" />
</div>        
<div data-bind="visible:isWaived">
    <div class="alert">
        You have waived coverage for this member <span data-bind="text:idx"></span>.
    </div>
</div> 
<!-- /ko -->
function Member(idx, isWaived) {
    var self = this;
    self.idx = idx;
    self.isWaived = ko.observable(isWaived);    
}

function ReviewCartViewModel() {
    var self = this;
    // Editable data   

    self.members = ko.observableArray([
        new Member(0, true),
        new Member(1, false),
        new Member(2, false),
        new Member(3, false),
    ]);
}

ko.applyBindings(new ReviewCartViewModel());