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 相关文章推荐
基于jquery的图片懒加载js
Jun 30 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
js父页面与子页面不同时显示的方法
Oct 16 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
vue实现在线翻译功能
Sep 27 Javascript
你知道JavaScript Symbol类型怎么用吗
Jan 08 Javascript
Node.js API详解之 zlib模块用法分析
May 19 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
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 #Javascript
You might like
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
实战node静态文件服务器的示例代码
2018/03/08 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python对列表中的各项进行关联详解
2017/08/15 Python
Python网络编程 Python套接字编程
2017/09/13 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python模块WSGI使用详解
2018/02/02 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python定义一个Actor任务
2020/07/29 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
项目副经理岗位职责
2013/12/30 职场文书
课例研修方案
2014/05/31 职场文书
毕业大学生自荐信
2014/06/17 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
Redis三种集群模式详解
2021/10/05 Redis
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python