Javascript 已检查foreach淘汰中的事件
我想根据复选框选中的状态更改ObservalArray中的状态标志 视图: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
视图模态
'<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()