如何通过knockout设置visible = false

时间:2018-01-18 20:12:31

标签: javascript html dom knockout.js

我发布了更详细的问题,这是非常明确和直截了当的 here

你好,我试图通过使用knockout将list元素的值设置为false 这是我的HTML

   <li>
     <a onclick="log(this)" data-bind="visible: true, text: $data"></a>
            </li>

有没有办法说出这样的话:

               myViewModel.items()[i].setVisible(false);

1 个答案:

答案 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>

Knockout foreach / $data documentation