我在kickout.js中有以下代码 并使用javascript单击div元素时将其隐藏。 但是在ajax请求后的第二次绑定中,再次显示了div。
<div id="myrootDiv">
<!-- ko foreach: Items -->
<div class="myclass" data-bind="html: myData"></div>
<!-- /ko -->
</div>
javascript代码
$("#myrootDiv").on("click",".myclass",function (){
$(this).toggle();
});
我将如何记住每个绑定的可见性? 当我打电话
ko.mapping.fromJS(jsonData,{}, myVM);
所有div元素再次显示。如何使它们不受用户选择的影响。 这是我的查看代码
var ViewModel = function() {};
var myVM = new ViewModel('myrootDiv');
var tempjson={"items":[{"id":"1","myData":"test data1"},{"id":"2","myData":"test data2"},{"id":"3","myData":"test data3"}]};
var jsonData =$.parseJSON(tempjson);
ko.mapping.fromJS(jsonData,{}, myVM);
ko.applyBindings(myVM,document.getElementById('myrootDiv'));
成功完成ajax
ko.mapping.fromJS(jsonData,{}, myVM);
答案 0 :(得分:1)
不太清楚第二个绑定的含义,但是通常可以通过在项数组中的各个项上添加isVisible = ko.observable(true);
来实现,然后在html中添加以下内容。
<!-- ko foreach: Items -->
<div data-bind="html: myData, visible: isVisible">
</div>
<!-- /ko -->
isVisibile属性跟踪该项目是否可见。在其他代码中,您可以根据需要为每个项目打开或关闭可见性。