Knockout.Js官网学习(visible绑定)

前言javascript

让visible绑定到DOM元素上,使得该元素的hidden或visible取决于绑定的值。html

简单的绑定java

 首先仍是先定义一个ViewModel 数组

    var AppViewModel = {
        shouldShowMessage: ko.observable(true)  ///初始化的时候div是visible的     
    };
    
    AppViewModel.shouldShowMessage = ko.observable(false);   ///如今hidden勒
    ko.applyBindings( AppViewModel);

而且经过ko.applyBindins进行激活Knockout。app

而后定义一个UI界面元素函数

<div data-bind="visible:shouldShowMessage">
    You will see this message only when "shouldShowMessage" holds a true value.
</div>

运行以后此div在初始化的时候仍是显示的能够,以后就被从新赋值为false,致使此div被隐藏掉了。post

参数:学习

当参数设置为一个假值时(例如:布尔值false, 数字值0, 或者null, 或者undefined) ,该绑定将设置该元素的style.display值为none,让元素隐藏。它的优先级高于你在CSS里定义的任何display样式。this

当参数设置为一个真值时(例如:布尔值true,或者非空non-null的对象或者数组) ,该绑定会删除该元素的style.display值,让元素可见。而后你在CSS里自定义的display样式将会自动生效。url

若是参数是监控属性observable的,那元素的visible状态将根据参数值的变化而变化,若是不是,那元素的visible状态将只设置一次而且之后不在更新。

使用函数或者表达式来控制元素的可见性

你也能够使用JavaScript函数或者表达式做为参数。这样的话,函数或者表达式的结果将决定是否显示/隐藏这个元素。例如:

<script type="text/javascript">
    var AppViewModel = {
        shouldShowMessage: ko.observable(true),   ///初始化的时候div是visible的
        myValues: ko.observableArray([])         
    };
    
    AppViewModel.shouldShowMessage = ko.observable(false);   ///如今hidden勒
    AppViewModel.myValues.push("some value");                   ///向myValues数组中 添加一个项
    ko.applyBindings( AppViewModel);
</script>

在ViewModel中添加了一个myValues的属性值

同时给myValues的数组添加了一个项

而且在页面UI中绑定了一个元素

<div data-bind="visible: myValues().length > 0">    
  You will see this message only when 'myValues' has at least one member.
</div>

就这样当添加完"some value"元素以后,myValues().length>0 则结果为true 

那么此div就会显示出来。

导航

 1.KnockoutJs官网学习(简单了解和入门) 

 2.Knockout.Js官网学习(监控属性Observables)

 3.Knockout.Js官网学习(数组observable)

相关文章
相关标签/搜索