我发布了更详细的问题,这是非常明确和直截了当的 here
你好,我试图通过使用knockout将list元素的值设置为false 这是我的HTML
<li>
<a onclick="log(this)" data-bind="visible: true, text: $data"></a>
</li>
有没有办法说出这样的话:
myViewModel.items()[i].setVisible(false);
答案 0 :(得分:2)
不要将可见绑定设置为true将其设置为您在viewModel中定义的变量。您还可以通过foreach绑定访问可观察数组的各个元素。最后,如果要使用$ data,可以使用“。”直接访问单个数组对象的属性。运营商。我在帖子末尾引用的文档有更多信息。见下文:
<div data-bind="foreach: shouldShowMessageArray">
<div data-bind="visible: $data.shouldShowMessage">
Message goes here.
</div>
</div>
<script type="text/javascript">
var myViewModel;
$(document).ready(function(){
myViewModel = new viewModel();
function viewModel() {
this.shouldShowMessage = ko.observable(false) // Message initially visible
this.shouldShowMessageArray = ko.observableArray([
{shouldShowMessage: ko.observable(true)},
{shouldShowMessage: ko.observable(false)}
]);
}
ko.applyBindings(myViewModel);
});
</script>