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 相关文章推荐
javascript中巧用“闭包”实现程序的暂停执行功能
Apr 04 Javascript
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
微信小程序 toast 详解及实例代码
Nov 09 Javascript
Bootstrap栅格系统的使用和理解2
Dec 14 Javascript
微信小程序 switch组件详解及简单实例
Jan 10 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
vue全屏事件开发详解
Jun 17 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
一个显示天气预报的程序
2006/10/09 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
对python中的logger模块全面讲解
2018/04/28 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
python集合常见运算案例解析
2019/10/17 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
django form和field具体方法和属性说明
2020/07/09 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
大学新闻系求职信
2014/06/03 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书