Knockout visible绑定使用方法


Posted in Javascript onNovember 15, 2013

简单的绑定

首先还是先定义一个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就会显示出来。
Javascript 相关文章推荐
JavaScript 拾碎[三] 使用className属性
Oct 16 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
JavaScript实现同时调用多个函数的方法
Nov 09 Javascript
Google Maps基础及实例解析
Aug 06 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
如何使用 vue + d3 画一棵树
Dec 03 Javascript
150行代码带你实现微信小程序中的数据侦听
May 17 Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 Javascript
Javascript如何实现扩充基本类型
Aug 26 Javascript
JavaScript异步操作中串行和并行
Nov 20 Javascript
Knockout数组(observable)使用详解示例
Nov 15 #Javascript
图片上传插件jquery.uploadify详解
Nov 15 #Javascript
JQuery获取或设置ckeditor的数据(示例代码)
Nov 15 #Javascript
Json和Jsonp理论实例代码详解
Nov 15 #Javascript
JS简单实现文件上传实例代码(无需插件)
Nov 15 #Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 #Javascript
简洁Ajax函数处理(示例代码)
Nov 15 #Javascript
You might like
PHP4之真OO
2006/10/09 PHP
一个php作的文本留言本的例子(四)
2006/10/09 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
pygame播放音乐的方法
2015/05/19 Python
详解用python实现简单的遗传算法
2018/01/02 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
数据库的约束含义
2012/09/09 面试题
个人生活学习自我评价范文
2013/11/26 职场文书
员工评语大全
2014/01/19 职场文书
初中英语演讲稿
2014/04/29 职场文书
青春励志演讲稿
2014/04/29 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
TypeScript 内置高级类型编程示例
2022/09/23 Javascript