text绑定(The "text" binding)
目的
text绑定可以使你传递的参数做为文本显示到相关的DOM元素里。
一般会用在如<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>
参数
- Main parameter
- knockout会把参数做为文本显示到元素中,原来存在的内容会被清除。
- 如果参数是observable的,那么当参数值改变时绑定也会发生更改。否则,只会在第一次绑定时更新文本内容,后面参数值改变时不会更新。
如果参数不是number或者string类型的(如传了一个对象或者数组),文本会把参数按toString()的方式显示。
- Additional parameters
- 无
注1:使用函数或者表达式来确定text值
如果想通过编码方式确定文本内容,可以选择使用computed observable。
示例
The item is <span data-bind="text: priceRating"></span> today. <script type="text/javascript">
var viewModel = {
price: ko.observable(24.95)
};
viewModel.priceRating = ko.pureComputed(function() {
return this.price() > 50 ? "expensive" : "affordable";
}, viewModel);
</script>
这样,text就会在"expensive"和"affordable"之间根据price的值进行切换显示。
另外,也可以不用computed observable,改用JS的表达式,如:
The item is <span data-bind="text: price() > 50 ? 'expensive' : 'affordable'"></span> today.
这两种做法的效果是一样的。
注2:HTML编码
text绑定的是文本内容,不用担心会产生HTML冲突或者脚本注入的问题,如:
viewModel.myMessage("<i>Hello, world!</i>");
这并不会产生一个斜体显示的文字,而是会原模原样的输出。如果的确需要输出HTML内容,则需要使用html binding.
注3:没有父元素如何显示文本内容
有时要显示text但是并不想将text绑定到任何元素上,如示例:
<select data-bind="foreach: items">
<option>Item <span data-bind="text: name"></span></option>
</select>
并不想让文本显示到span当中,此时可以这样:
<select data-bind="foreach: items">
<option>Item <!--ko text: name--><!--/ko--></option>
</select>
<!-- ko --> <!-- /ko -->注释扮演一个开始、结束的标识,定义了一个“虚拟”的元素。Knockout明白要做休处理,就像有一个真实的元素绑定一样。
注4:IE6的空格问题
IE6有个很奇怪的问题,有时会忽略空格,KO对此并没有做任何的处理,如下面的示例:
Welcome, <span data-bind="text: userName"></span> to our web site.
本来to our web site前面有一个空格的,但是在IE6下并不会显示处理,我们要这样处理:
Welcome, <span data-bind="text: userName"> </span> to our web site.
其它浏览器及IE6以上的版本没有这个问题。
text绑定(The "text" binding)的更多相关文章
- Text 绑定
Text绑定 目的 Text绑定主要是让DOM元素显示参数值. 通常情况下,该绑定在<span>和<em>这样的元素上非常有用,而实际上你可以绑定任何元素. 示例 123456 ...
- Knockout v3.4.0 中文版教程-11-控制文本内容和外观-text绑定
2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 T ...
- Knockout 新版应用开发教程之"text"绑定
目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...
- Knockout.Js官网学习(text绑定)
前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数.该绑定在显示<span>或者<em>上非常有用,但是你可以用在任何元素上. 简单绑定 Today's ...
- 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合
[源码下载] 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合 作 ...
- 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合
背水一战 Windows 10 之 绑定 通过 Binding 绑定对象 通过 x:Bind 绑定对象 通过 Binding 绑定集合 通过 x:Bind 绑定集合 示例1.演示如何通过 Bindin ...
- 关于iOS中的文本操作-管理text fields 和 text views
Managing Text Fields and Text Views 管理UITextField和UITextView实例 UITextField和UITextView的实例拥有两个最主要的功能:展 ...
- TEXT 15 A text a day...
TEXT 15 A text a day... Mar 24th 2006 From The Economist print edition The medical uses of mobile ph ...
- 一行代码轻松修改 Text Field 和 Text View 的光标颜色 — By 昉
众所周知,Text Field 和 Text View 的光标颜色默认都是系统应用的那种蓝色,如图: 而在实际开发中为了让视觉效果更统一,我们可能会想把那光标的颜色设置成和界面色调一致的颜色.其实在 ...
随机推荐
- 去掉UItableview section headerview黏性
UITabelView在style为plain时,在上拉是section始终粘在最顶上而不是跟随滚动而消失或者出现 可以通过设置UIEdgeInsetsMake: - (void)scrollView ...
- centos7 搭建elk
CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana) 云计算 Aug 162015 第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时 ...
- linux awk命令详解2
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk命令形式: awk [-F ...
- centOS静态ip设置
设置静态IP地址 1,先搜索了一下,得到以下解释IP P地址Netmark 子网掩码Gateway 默认网关HostName 主机名称DomainName 域 ...
- 设计模式-GoF23
书呢,是2012年双11买的. 没有面向对象程序经验的人,果然还是看不懂的.
- lucene 总结收集(url)
1.倒排索引结构 2.lucene自定义评分域 3.Lucene系列-FieldCache 4.Lucene系列-facet | IT瘾 5.lucene4.7 之排序 6.lucene排序---相关 ...
- sqlserver判断字符串是否是数字
sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0.这只是一个菜鸟级的解决办法,大多数情况比较奏效. eg: ') --结果为1 ...
- MongoDB本地安装与启用(windows )
MongoDB的安装与MongoDB服务配置 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了 ...
- 顺序栈和链式栈(C++实现)
顺序栈,是一种基于数组的存储表示. 实现类代码如下: template<class T> class SeqStack{ T *element; int top; int maxSize; ...
- 随机数生成类Random用法
一.构造方法: Random() 创建一个新的随机数生成器. Random(long seed) 使用单个 long 种子创建一个新的随机数生成器. 无参构造方 ...