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 iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
jQuery Ajax 实例全解析
Apr 20 Javascript
jquery如何改变html标签的样式(两种实现方法)
Jan 16 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
每日十条JavaScript经验技巧(一)
Jun 23 Javascript
javascript类型系统——日期Date对象全面了解
Jul 13 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
前端canvas中物体边框和控制点的实现示例
Aug 05 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 表单提交给自己
2008/07/24 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
python结合API实现即时天气信息
2016/01/19 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
python和c语言哪个更适合初学者
2020/06/22 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
.net面试题
2016/09/17 面试题
投资合作协议书
2014/04/17 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
python基础之匿名函数详解
2021/04/21 Python
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
Mysql忘记密码解决方法
2022/02/12 MySQL
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers