目的

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">&nbsp;</span> to our web site.

其它浏览器及IE6以上的版本没有这个问题。

text绑定(The "text" binding)的更多相关文章

  1. Text 绑定

    Text绑定 目的 Text绑定主要是让DOM元素显示参数值. 通常情况下,该绑定在<span>和<em>这样的元素上非常有用,而实际上你可以绑定任何元素. 示例 123456 ...

  2. Knockout v3.4.0 中文版教程-11-控制文本内容和外观-text绑定

    2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 T ...

  3. Knockout 新版应用开发教程之"text"绑定

    目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...

  4. Knockout.Js官网学习(text绑定)

    前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数.该绑定在显示<span>或者<em>上非常有用,但是你可以用在任何元素上. 简单绑定 Today's ...

  5. 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合

    [源码下载] 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合 作 ...

  6. 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合

    背水一战 Windows 10 之 绑定 通过 Binding 绑定对象 通过 x:Bind 绑定对象 通过 Binding 绑定集合 通过 x:Bind 绑定集合 示例1.演示如何通过 Bindin ...

  7. 关于iOS中的文本操作-管理text fields 和 text views

    Managing Text Fields and Text Views 管理UITextField和UITextView实例 UITextField和UITextView的实例拥有两个最主要的功能:展 ...

  8. 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 ...

  9. 一行代码轻松修改 Text Field 和 Text View 的光标颜色 — By 昉

    众所周知,Text Field 和 Text View 的光标颜色默认都是系统应用的那种蓝色,如图: 而在实际开发中为了让视觉效果更统一,我们可能会想把那光标的颜色设置成和界面色调一致的颜色.其实在 ...

随机推荐

  1. umount: /home: device is busy

    转自:umount: /home: device is busy 取消挂载/home时出现umount: /home: device is busy,原因是因为有程序在使用/home目录,我们可以使用 ...

  2. hibernate------->第一个程序

    今天学习hibernate . 创建User类: package com.hibernate; import java.util.Date; public class User { private I ...

  3. checkbox批量操作

    hang=data.split("\1");//获取 查询返回的数据 处理数据 var str=""; for(var i =0;i<hang.lengt ...

  4. selenium+python在Windows的环境搭建

    1 python下载安装 python早已安装,不再多说.因为开发使用的python2.7,所以同样使用2.7 2 打开Powershell, 输入python -m pip install sele ...

  5. EM算法及其推广的要点

    1.EM算法是含有隐变量的变量的概率模型极大似然估计或极大后验概率估计的迭代算法,含有隐变量的概率模型的数据表示为$P(Y,Z|\theta)$.这里,$Y$是观测变量的数据,$Z$是隐变量的数据,$ ...

  6. Scrapy框架使用—quotesbot 项目(学习记录一)

    一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...

  7. XOR and Favorite Number(莫队算法+分块)

    E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...

  8. tomcat识别不出maven web项目

    解决办法: 点中项目-->Properties-->project facets 勾选:Dynamic Web Module.java.javaScript Apply-->OK 解 ...

  9. Listview性能优化

    首先,虽然大家都知道,还是提一下,利用好 convertView 来重用 View,切忌每次 getView() 都新建.ListView 的核心原理就是重用 View.ListView 中有一个回收 ...

  10. 第七十一,CSS颜色与度量单位

    CSS颜色与度量单位 学习要点: 1.颜色表方案 2.度量单位 本章主要探讨HTML5中CSS颜色和度量单位等问题,包括颜色的选取方式.相对长度和绝对长度等.   一.颜色表方案 1 颜色的表现形式主 ...