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 相关文章推荐
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
Mar 10 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
javascript操作ul中li的方法
May 14 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
Angular如何引入第三方库的方法详解
Jul 13 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
Sep 20 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 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
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
js对象的复制继承实例
2015/01/10 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
python网络编程实例简析
2014/09/26 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
问卷调查计划书
2014/01/10 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
网络妈妈观后感
2015/06/08 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
Python first-order-model实现让照片动起来
2022/06/25 Python