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 相关文章推荐
利用javascript查看html源文件
Nov 08 Javascript
JS模拟多线程
Feb 07 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
Javascript中For In语句用法实例
May 14 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
js+html5操作sqlite数据库的方法
Feb 02 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 Javascript
vue监听滚动事件的方法
Dec 21 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
PHP数据流应用的一个简单实例
2012/09/14 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
对Python之gzip文件读写的方法详解
2019/02/08 Python
Django之模板层的实现代码
2019/09/09 Python
python实现人机五子棋
2020/03/25 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
网上快餐厅创业计划书
2014/02/01 职场文书
赔偿协议书范本
2014/04/15 职场文书
奉献演讲稿范文
2014/05/21 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
绿里奇迹观后感
2015/06/15 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
基于Python实现股票收益率分析
2022/04/02 Python