2017-04-07 62 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>