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 相关文章推荐
巧妙破除网页右键禁用的十大绝招
Aug 12 Javascript
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
js自定义事件代码说明
Jan 31 Javascript
jquery二级导航内容均分的原理及实现
Aug 13 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 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获取url的函数代码
2011/08/02 PHP
php 判断数组是几维数组
2013/03/20 PHP
php数组合并的二种方法
2014/03/21 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vue mounted组件的使用
2018/06/18 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
整理Python 常用string函数(收藏)
2016/05/30 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Python实现注册、登录小程序功能
2018/09/21 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
V Rising 服务器搭建图文教程
2022/06/16 Servers