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


Posted in Javascript onOctober 10, 2016

with绑定的目的

使用with绑定的格式为data-bind=”with:attribute”,使用with绑定会将其后所跟的属性看作一个新的上下文进行绑定。with绑定内部的所有元素将受到该上下文的约束。

当然,with绑定也可配合if或foreach绑定一起使用。

示例1

<h1 data-bind="text: city"> </h1>
<p data-bind="with: coords">
Latitude: <span data-bind="text: latitude"> </span>,
Longitude: <span data-bind="text: longitude"> </span>
</p>
<script type="text/javascript">
ko.applyBindings({
city: "London",
coords: {
latitude: 51.5001524,
longitude: -0.1262362
}
});
</script>

本例中,通过with直接绑定了coords监控属性,并在其内部直接调用了coords监控属性的内部属性。这里就体现了with绑定的特性。

示例2:一个互动的例子

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

该例子中将使用with绑定动态添加和删除其绑定值为null/undefined或非null/undefined

UI源码:

<form data-bind="submit: getTweets">
Twitter account:
<input data-bind="value: twitterName" />
<button type="submit">Get tweets</button>
</form>
<div data-bind="with: resultData">
<h3>Recent tweets fetched at <span data-bind="text: retrievalDate"> </span></h3>
<ol data-bind="foreach: topTweets">
<li data-bind="text: text"></li>
</ol>
<button data-bind="click: $parent.clearResults">Clear tweets</button>
</div>

视图模型源码:

function AppViewModel() {
var self = this;
self.twitterName = ko.observable('@example');
self.resultData = ko.observable(); // No initial value
self.getTweets = function() {
var name = self.twitterName(),
simulatedResults = [
{ text: name + ' What a nice day.' },
{ text: name + ' Building some cool apps.' },
{ text: name + ' Just saw a famous celebrity eating lard. Yum.' }
];
self.resultData({ retrievalDate: new Date(), topTweets: simulatedResults });
}
self.clearResults = function() {
self.resultData(undefined);
}
}
ko.applyBindings(new AppViewModel());

备注:with的无容器绑定(虚拟绑定)

像if、foreach等的虚拟绑定一样,with绑定也一样。使用<!-- ko -->和<!-- /ko -->进行。

<ul>
<li>Header element</li>
<!-- ko with: outboundFlight -->
...
<!-- /ko -->
<!-- ko with: inboundFlight -->
...
<!-- /ko -->
</ul>

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

Javascript 相关文章推荐
JS 实现双色表格实现代码
Nov 24 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
Aug 26 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
vue-music关于Player播放器组件详解
Nov 28 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
微信小程序实现banner图轮播效果
Jun 28 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
vue.config.js中配置Vue的路径别名的方法
Feb 11 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
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
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 #Javascript
You might like
source.php查看源文件
2006/12/09 PHP
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Python二分查找详解
2015/09/13 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
使用python绘制二维图形示例
2019/11/22 Python
keras中的History对象用法
2020/06/19 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
法院实习人员自我鉴定
2013/09/26 职场文书
财产公证书
2014/04/10 职场文书
开学典礼演讲稿
2014/05/23 职场文书
党员公开承诺书2015
2015/01/21 职场文书