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 相关文章推荐
使用JQuery和s3captche实现一个水果名字的验证
Aug 14 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
JS删除数组里的某个元素方法
Feb 03 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
原生Vue 实现右键菜单组件功能
Dec 16 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
Jul 19 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 Javascript
vue使用过滤器格式化日期
Jan 20 Vue.js
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防注
2007/01/15 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python之多进程与多线程的使用
2021/02/23 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
学校办公室主任职责
2013/12/27 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
运动会开幕词
2015/01/28 职场文书
二手房购房意向书
2015/05/09 职场文书
课程设计感想范文
2015/08/11 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
如何在C++中调用Python
2021/05/21 Python
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers