Knockout 新版应用开发教程之"text"绑定
目的
DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上
典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的。
例子:
Today's message is: <span data-bind="text: myMessage"></span> <script type="text/javascript">
var viewModel = {
myMessage: ko.observable() // Initially blank
};
viewModel.myMessage("Hello, world!"); // Text appears
</script>
参数
- 主要参数
- Knockout 会把参数值设置到元素文本节点上,节点上任何存在的内容将会被覆盖重写
- 这个参数是一个监控属性值,任何时候在值被改变的时候它绑定元素text将会触发更新,假如不是一个监控属性,它仅仅就是text,不会更新
- 假如你提供一些非数字或者字符串(举例来说,你对象或者数组,那显示的文本将是yourParameter.toString()的等价内容。
- 附加参数
- 无
注1:使用函数或者表达式来决定text值
如果你想要以编程方式决定text的取值,一个选择是去创建一个 computed observable 依赖属性,并且你在它的执行函数里编码,决定应该显示什么样的text文本。
例如:
The item is <span data-bind="text: priceRating"></span> today. <script type="text/javascript">
var viewModel = {
price: ko.observable(24.95)
};
viewModel.priceRating = ko.computed(function() {
return this.price() > 50 ? "expensive" : "affordable";
}, viewModel);
</script>
如上,现在你的text将会在“expensive” 和“affordable”选择,每当price改变的时候.
也许,你只是想做一些简单的操作,你不需要是创建一个依赖监控属性。你能通过任意的javascript表达式去绑定text,
例如:
The item is <span data-bind="text: price() > 50 ? 'expensive' : 'affordable'"></span> today.
同样的结果,但我们不需要再声明priceRating依赖监控属性
注2:关于HTML编码
因为这个绑定,设置你的文本值使用一个文本节点,所以它是安全的如果设置任何的字符串的值,没有HTML或者脚本注入的风险
例如,如果你这样写:
viewModel.myMessage("<i>Hello, world!</i>");
这个斜体的文本将不会渲染出来,而是原样输出标签。如果你需要显示HTML内容,请参考html绑定.
注3:不能在一个容器元素中用“text”
有时,你想要用KO设置一text,但是text绑定不能包含一个额外的元素
例如,在一个option节点中,你不允包含其他的元素,所以下面将不会工作。
<select data-bind="foreach: items">
<option>Item <span data-bind="text: name"></span></option>
</select>
为了处理这样的情况,你能用containerless语法,它是基于注释标签
<select data-bind="foreach: items">
<option>Item <!--ko text: name--><!--/ko--></option>
</select>
<!--ko-->和<!--/ko—> ,注释是充当开始/结束标记,定义一个‘virtual element’在包含的标记内,
Knockout能理解virtual element的语法规则,并且能够绑定好,如果你有一个真正的容器元素
注4: 关于IE6空白空格的怪癖
IE6 有一个怪癖,如果 span里有空格的话,它将自动变成一个空的span。
如果你想编写如下的代码的话,那Knockout将不起任何作用:
Welcome, <span data-bind="text: userName"></span> to our web site.
… IE6 将不会显示span中间的那个空格,你可以通过下面这样的代码避免这个问题:
Welcome, <span data-bind="text: userName"> </span> to our web site.
IE6以后版本和其它浏览器都没有这个问题
依赖性:除KO核心类库外,无依赖。
Knockout 新版应用开发教程之"text"绑定的更多相关文章
- Knockout 新版应用开发教程之创建view models与监控属性
最近抽出点时间研究MVVM,包括司徒正美的avalon,google的angular,以及Knockout,博客园Tom的Knockout指南 时隔2年了,ko更新了不少,所以文档也相应的变化了,所以 ...
- Knockout 新版应用开发教程之"visible"绑定
"visible" 绑定 用途 DOM元素的显示或者隐藏是根据绑定的值来的,前提是将visible绑定给该元素 例子 <div data-bind="visible ...
- Knockout.Js官网学习(text绑定)
前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数.该绑定在显示<span>或者<em>上非常有用,但是你可以用在任何元素上. 简单绑定 Today's ...
- Knockout 新版应用开发教程之Computed Observables
Computed Observables 如果你有监控属性firstName和lastName的话,此时如果你想要显示全名? 这个时候computed(以前叫做依赖)监控属性就出马了,这是一个函数用来 ...
- Knockout 新版应用开发教程之Observable Arrays
假如你想到侦测和相应一个对象的改变,假如你想要侦测和响应一一组合集的改变,就要用observableArray 在许多场景都是很有用的,比如你要在UI上需要显示/编辑的一个列表数据集合,然后对集合进行 ...
- Knockout 新版应用开发教程之Observable与computed
KO是什么? KO不是万能的,它的出现主要是为了方便的解决下面的问题: UI元素较多,用户交互比较频繁,需要编写大量的手工代码维护UI元素的状态.样式等属性? UI元素之间关系比较紧密,比如操作一个元 ...
- Knockout v3.4.0 中文版教程-11-控制文本内容和外观-text绑定
2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 T ...
- knockout之各种数据绑定方法:text、attr、visible、html、css、style绑定
http://knockoutjs.com/documentation/attr-binding.html(Knockout官网文档) 1.text绑定 目的:text 绑定到DOM元素上,使得该元素 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
随机推荐
- [轻微]WEB服务器启用了OPTIONS方法/如何禁止DELETE,PUT,OPTIONS等协议访问应用程序/tomcat下禁用不安全的http方法
使用了360网站安全检测 查到有OPTIONS方法 百度了下 https://my.oschina.net/maliang0130/blog/338725 找到这个方法奈何http.conf 找不到无 ...
- easy UI获取数据,打开毕弹窗
<div id="modalwindow" class="easyui-window" data-options="modal:true,clo ...
- MFC如何使用静态MFC库
大部分MFC程序都是使用 在共享DLL中使用MFC ,但是VS每一个版本都需要一个 MFC运行库,实在是有点烦人. 所以我选择了使用静态MFC库,虽然文件会大一些,但是至少不麻烦了. VS这个做的不够 ...
- Android 的EditText实现不可编辑
android:editable is deprecated: Use an <EditText> to make it editable android:editable is depr ...
- Linux 磁带机备份完全攻略
一.确定数据备份策略 首先必须确定在备份过程中操作哪些文件.在商业环境中,这是非常困难的一个决定,而且会产生严重的影响.如果备份了太多数据,会导致备份系统的成本过于庞大,会削减其他方面的开支.如果没有 ...
- Android 5.0 Uicc框架分析
已同步更新至个人blog: dxjia.cn Uicc框架 UICC框架是Android在4.1引入的,使的对卡的管理控制更加清晰.要了解这个UICC框架,需要从UiccController开始, ...
- iis7下iis安全狗不能用怎么办(安装iis6兼容性)
is7下iis安全狗不能用怎么办 | 浏览:126 | 更新:2015-05-14 17:11 1 2 3 4 5 6 分步阅读 windows系统iis安全狗是常用的一款软件,针对网站使用很方便.在 ...
- 支付宝支付后回调通知中responseTxt=true isSign=False可能的问题
在做支付宝的二维码扫码支付功能,生成二维码成功,扫描后也能付款,付款后也能回调通知到我的页面,但是验证签名的时候出错,找了好久终于找到是什么原因: 引用 1. 用的RSA签名验证,默认密钥纯字符,并不 ...
- 在Windows 2008/2008 R2 上配置IIS 7.0/7.5 故障转移集群
本文主要是从:http://support.microsoft.com/kb/970759/zh-cn,直接转载,稍作修改裁剪而来,其中红色粗体部分,是我特别要说明的 若要配置 IIS 7.0 和 7 ...
- [知识库分享系列] 四、ASP.NET MVC and Winform
知识库分享系列: [知识库分享系列] 三.Web(高性能Web站点建设) [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍本篇分享两个知识库节点,分别为“AS ...