Javascript 已检查foreach淘汰中的事件

Javascript 已检查foreach淘汰中的事件,javascript,knockout.js,Javascript,Knockout.js,我想根据复选框选中的状态更改ObservalArray中的状态标志 视图: 视图模态 '<script type="text/javascript"> var viewModal=function() { this.allTask=ko.observableArray([ {tsk : "Visit Hotel" , status : "true"}, {tsk : "Vis

我想根据复选框选中的状态更改ObservalArray中的状态标志

视图:


视图模态

'<script type="text/javascript">
        var viewModal=function()
        {
            this.allTask=ko.observableArray([
            {tsk : "Visit Hotel" , status : "true"},
            {tsk : "Visit Room" , status : "true"}
            ]);

            this.setStatus=ko.computed(function(data){this.data="false";});
        };
        ko.applyBindings(new viewModal());
</script>'
'
var viewModal=函数()
{
this.allTask=ko.array([
{tsk:“参观酒店”,状态:“真实”},
{tsk:“探视室”,状态:“真实”}
]);
this.setStatus=ko.computed(函数(数据){this.data=“false”;});
};
ko.applyBindings(newviewmodel());
'

我是个新手。我可能完全错了。请给我正确的方向并帮助我解决这个问题。

如果我理解您试图做的事情,请将绑定中的
$root.setStatus
$root.status
替换为
status
,并在ViewModel中删除
计算的

我怀疑您的印象是,
computed
可以为
foreach
的不同迭代返回不同的值。它不能,因为它无法知道绑定在做什么。

查看:-

  `<tbody data-bind="foreach: itemArray">
            <tr>
                <td>
                    <input type="checkbox" data-bind="checked: status" />
                </td>
                <td>
                    <span data-bind="text: name , style : { color: status()==true ? 'red' : 'black' }"> </span>
                </td>
                <td>
                    <span data-bind="text: status"> </span>
                </td>
            </tr>
        </tbody>`
`
`
视图模式:-

 `<script type="text/javascript">
        function viewModal(){
                      var self=this;
                      self.itemArray=ko.observableArray([
                      {name:'Visit Hotel',status:ko.observable(true)},
                      {name:'Visit Room',status:ko.observable(true)},
                      {name:'Take Food',status:ko.observable(true)}
                      ]);
                      self.TotalCount=ko.computed(function()
                      {
                        var temp=self.itemArray();
                        var totalCount=0; 
                        for(var i=0;i<temp.length;i++)
                        {
                                if(temp[i].status()==true)
                                {
                                    totalCount++;
                                }
                        }
                        return totalCount;
                      });


        };
        var vm = new viewModal();
        ko.applyBindings(vm);
    </script>`
`
函数viewmodel(){
var self=这个;
self.itemArray=ko.observableArray([
{名称:'Visit Hotel',状态:ko.observable(true)},
{名称:'visitormoom',状态:ko.observable(true)},
{姓名:'Take Food',状态:ko.observable(true)}
]);
self.TotalCount=ko.computed(函数()
{
var temp=self.itemArray();
var totalCount=0;

对于(var i=0;iI将
$root.setStatus
$root.status
更改为status。在此之后,在数据绑定期间自动应用动态颜色。我想根据复选框的选中状态更改颜色。如何执行此操作?您必须立即将模型对象的
status
成员设置为可观察的
选中和取消选中实际上会更改相应对象中的
状态
的值,但绑定不会看到更改。我希望该更改反映在绑定中。是否有任何可能的方法如我所说,将
状态
设为可观察的。这将导致绑定在更改时更新。我是否应该更改可观察的像这样吗?
tsk:“参观酒店”,状态:ko.observable()