Knockout visible绑定使用方法
简单的绑定
首先还是先定义一个ViewModel
并且通过ko.applyBindins进行激活Knockout。
然后定义一个UI界面元素
运行之后此div在初始化的时候还是显示的可以,之后就被重新赋值为false,导致此div被隐藏掉了。
参数:
当参数设置为一个假值时(例如:布尔值false, 数字值0, 或者null, 或者undefined) ,该绑定将设置该元素的style.display值为none,让元素隐藏。它的优先级高于你在CSS里定义的任何display样式。
当参数设置为一个真值时(例如:布尔值true,或者非空non-null的对象或者数组) ,该绑定会删除该元素的style.display值,让元素可见。然后你在CSS里自定义的display样式将会自动生效。
如果参数是监控属性observable的,那元素的visible状态将根据参数值的变化而变化,如果不是,那元素的visible状态将只设置一次并且以后不在更新。
使用函数或者表达式来控制元素的可见性
你也可以使用JavaScript函数或者表达式作为参数。这样的话,函数或者表达式的结果将决定是否显示/隐藏这个元素。例如:
在ViewModel中添加了一个myValues的属性值
同时给myValues的数组添加了一个项
并且在页面UI中绑定了一个元素
就这样当添加完"some value"元素之后,myValues().length>0 则结果为true
那么此div就会显示出来。
首先还是先定义一个ViewModel
代码如下:
var AppViewModel = { shouldShowMessage: ko.observable(true) ///初始化的时候div是visible的 }; AppViewModel.shouldShowMessage = ko.observable(false); ///现在hidden勒 ko.applyBindings( AppViewModel);
并且通过ko.applyBindins进行激活Knockout。
然后定义一个UI界面元素
代码如下:
<div data-bind="visible:shouldShowMessage"> You will see this message only when "shouldShowMessage" holds a true value. </div>
运行之后此div在初始化的时候还是显示的可以,之后就被重新赋值为false,导致此div被隐藏掉了。
参数:
当参数设置为一个假值时(例如:布尔值false, 数字值0, 或者null, 或者undefined) ,该绑定将设置该元素的style.display值为none,让元素隐藏。它的优先级高于你在CSS里定义的任何display样式。
当参数设置为一个真值时(例如:布尔值true,或者非空non-null的对象或者数组) ,该绑定会删除该元素的style.display值,让元素可见。然后你在CSS里自定义的display样式将会自动生效。
如果参数是监控属性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就会显示出来。
相关推荐
85931734 2019-11-25
88901533 2014-11-06
89570797 2015-03-11
85580894 2014-04-02
89570797 2016-05-31
80961131 2015-03-11
87941631 2015-02-10
89233916 2015-01-14
89233916 2015-01-07
89570797 2014-12-31
87941631 2014-11-06
89233916 2014-11-04
80961131 2014-11-03
89433869 2014-09-11
89570797 2013-08-24
88901533 2012-08-24
87941631 2012-06-14
89901038 2017-12-18
89901038 2017-07-31