2017-04-07 47 views
-1
<div id="title" data-bind="foreach: list"> 
      <input type="checkbox" data-bind="attr:{id: $index,value: list.id}" class="k-checkbox"> 
      <label class="k-checkbox-label" data-bind="attr:{for: $index},checked: myFunction(this),text: list.id"></label> 
      </div> 
      <span data-bind="text: elementsSelected"></span> 
     </div> 

myFunction检查我是否选中了该复选框。 进入elementsSelected我想获得选择'list'的元素。 然后我打印这个数组到跨度。如何获取与淘汰赛复选框选定的元素

回答

2

您可以使用ko.pureComputed根据您的情况显示数据。

下面是一个例子:

var simpleListModel = function(id, item) { 
 
    var self = this; 
 
    self.id = ko.observable(id); 
 
    self.item = ko.observable(item); 
 
    self.isSelected = ko.observable(false); 
 
    self.printItem = ko.pureComputed(function() { 
 
    if(self.isSelected()) return self.id() + " " + self.item(); 
 
    else return ""; 
 
    }, this); 
 
}; 
 

 
var masterVM = (function() { 
 
    var self = this;  
 
    self.lists = ko.observableArray(); 
 
    
 
    for(var i = 0; i<5; i++) { 
 
    self.lists.push(new simpleListModel(i, "Item No. " + i)); 
 
    } 
 
})(); 
 

 
ko.applyBindings(masterVM);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 

 
<div data-bind="foreach: lists"> 
 
    <div> 
 
    <span>Check to show the item: </span> 
 
    <input type="checkbox" data-bind="checked: isSelected" /> 
 
    <span data-bind="text: printItem"></span> 
 
    </div> 
 
</div>