KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定


Posted in Javascript onOctober 10, 2016

if绑定目的

if绑定一般是格式是data-bind=if:attribute,if后所跟属性或表达式的值应为bool值(也可以是非bool值,当非空字符串时则为真),if绑定的作用与visible绑定的作用类似。可控制DOM的显示与隐藏,不一样的地方是,if绑定是物理删除或添加DOM元素。

示例1

该例展示IF绑定的动态删除添加DOM:

Display message

UI源码:

<label><input type="checkbox" data-bind="checked: displayMessage" /> Display message</label>
<div data-bind="if: displayMessage">Here is a message. Astonishing.</div>

视图模型源码:

ko.applyBindings({
displayMessage: ko.observable(false)
});

示例2

该示例中,通过foreach绑定循环planets监控属性数组,其中name为Mercury的项目中capital为null,则循环中该项目只显示其name.

<ul data-bind="foreach: planets">
<li>
Planet: <b data-bind="text: name"> </b>
<div data-bind="if: capital">
Capital: <b data-bind="text: capital.cityName"> </b>
</div>
</li>
</ul>
<script>
ko.applyBindings({
planets: [
{ name: 'Mercury', capital: null }, 
{ name: 'Earth', capital: { cityName: 'Barnsley' } } 
]
});
</script>

备注:使用无容器的if绑定(if虚拟绑定)

像之前的虚拟绑定一样,同样使用<!-- ko -->和<!-- /ko -->进行。虚拟绑定适用于不改变UI元素的情况。

<ul>
<li>This item always appears</li>
<!-- ko if: someExpressionGoesHere -->
<li>I want to make this item present/absent dynamically</li>
<!-- /ko -->
</ul>

ifnot绑定

ifnot绑定是if绑定的逆向表达,格式与if绑定一样,只是判断结果与if整好相反。就像等于和不等于一样。例如:

<div data-bind="ifnot: someProperty">...</div>

其等效写法为:

<div data-bind="if: !someProperty()">...</div>

有人会说使用if绑定是足够了。为毛还要ifnot绑定。原因是有很多强迫症患者喜欢这种ifnot的绑定方式,看起来更易懂,代码更整洁。

以上所述是小编给大家介绍的KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
Backbone.js中的集合详解
Jan 14 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
JS实现的点击按钮图片上下滚动效果示例
Jan 28 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 Javascript
深入详解JS函数的柯里化
Jun 09 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 #Javascript
JS命令模式例子之菜单程序
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之click绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
Oct 10 #Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 #Javascript
You might like
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python程序封装为win32服务的方法
2021/03/07 Python
Python简单基础小程序的实例代码
2019/04/28 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
浅析Django中关于session的使用
2019/12/30 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
python wsgiref源码解析
2021/02/06 Python
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
人事主管的岗位职责
2013/11/16 职场文书
自主招生自荐书
2013/11/29 职场文书
大学生英语演讲稿
2014/04/24 职场文书
任命书范本大全
2014/06/06 职场文书
胡桃夹子观后感
2015/06/11 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书