目的

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. IntelliJ IDEA “Finds duplicated code”提示如何关闭

    发现重复的代码这个提示真的很烦啊,我们怎么关闭他呢. 设置在这里: Settings -> Editor -> Inspections -> General -> Duplic ...

  2. UNIX基础--磁盘组织

    磁盘组织 FreeBSD 查找文件的最小单位是文件名. 而文件名区分大小写,不凭文件扩展名去识别这个文件是 程序. 文档, 或是其他格式的数据. 在文件系统里目录和文件的作用是存储数据. 每一个文件系 ...

  3. delphi 帮助文档(中英对译)下载地址

    文档下载地址:http://download.csdn.net/detail/yangzhimars/5014350

  4. 关于scanf()函数的一点理解

    习惯了c++的cin.cout之后,也不怎么关注空格,反正cin.cout会自动处理.有一次实验,创建Huffman树,要求输入空格字符,当时就懵逼了.cin咋输入空格呢? 没办法,只能重新用scan ...

  5. SQL in优化将In转化为联合查询

    in查询有时候会非常影响性能,最好能转化为联合查询,但有的网友说sqlserver会自动将in转化为联合查询,但我实际遇到的有时候却不是这样.所以最好还是不要用in. 我自己的例子,用in的时候耗费了 ...

  6. JAVA的if用法,比如if(...){} 和if()没有大括号直接写下面的区别是什么

    有大括号的时候 大括号里面所有的 都归if管.只有条件为真的时候 才会执行.没有大括号的时候 只有下面的一句归if管,也就是说 当只有一句的时候 大括号可以省略 其它的 没区别.

  7. java的基础语法

  8. Mybatis的传参

    最近重新温习了遍Mybatis ,觉得还是汇总一下比较好,方便自己以后的快速开发 最终要的一点事,自己写的话,记忆更加深刻: 首先自己先写了个静态块,防止代码冗余: private static Sq ...

  9. My网页

    开始更新|Version:2.46|更新内容:/=====================================//1.新增秒低价次数//2.优化捉鬼停留过久的问题//3.优化其他任务上的效 ...

  10. Hibernate5-课程笔记2

    单表的增删改查操作: (1)定义获取Session和SessionFactory的工具类: package com.tongji.utils; import org.hibernate.Session ...