Text 绑定
Text绑定
目的
Text绑定主要是让DOM元素显示参数值。
通常情况下,该绑定在<span>和<em>这样的元素上非常有用,而实际上你可以绑定任何元素。
示例
|
1
2 3 4 5 6 7 8 |
Today's message is: <span data-bind="text: myMessage"></span>
<script type="text/javascript"> |
参数
主要参数
Knockout将参数值设置为元素内容。元素之前的内容将会被覆盖。
如果参数是一个observable值,text绑定将会在值变化时更新元素text内容。如果参数不是observable值,text绑定仅仅会设置元素内容一次,以后不会再更新。
如果你传入的不是一个值或者一个字符串(比如:你传入一个对象或者数组)那么显示的文本将是yourParameter.toString()的结果。
其他参数
无
传递多次text时使用这种写法
<div data-bind="text:myText1"></div>
<div data-bind="text:myText2"></div>
<script>
var viewModel = {
myText1:ko.observable("nihao"),
myText2:ko.observable("China")
};
ko.applyBindings(viewModel);
</script>
注意事项
注1:使用函数或表达式来决定text值
如果你想text值可编程化,一种选择是创建计算属性,然后在运算函数中编码决定text中显示什么。
例如:
|
|
The item is <span data-bind="text: priceRating"></span> today.
<script type="text/javascript"> ko.applyBindings(viewModel);
</script> |
现在,text值将会在“expensive”和“affordable”之间选择,而这主要取决于“price ”的变化。
然而,假如你按照示例中的方式你则不需要创建计算属性。你可以传入任意的JavaScript表达式进行text绑定。
例如:这个还没弄明白
|
The item is <span data-bind="text: price() > 50 ? 'expensive' : 'affordable'"></span> today.
|
注2:关于HTML编码
由于text绑定是利用元素的text节点属性来设置文本值,你可以很安全的设置任何内容而不用担心HTML和脚本注入风险。例如,如果你输入以下内容:
|
1
|
viewModel.myMessage("<i>Hello, world!</i>");
|
它将不会显示一个斜体文本,而是按原样进行标签输出。
如果你想设置一个HTML内容,你可以参数HTML绑定。
注3:使用“text”而没有一个容器元素 使用<!--ko--> 和<!--/ko-->
有时你可能需要使用Knockout在不使用多余的元素的情况下通过text绑定来设置文本内容。例如,在option元素中是不允许存在其他元素的,所以下面的绑定是无法正常工作的。
|
1
2 3 |
<select data-bind="foreach: items">
<option>Item <span data-bind="text: name"></span></option> </select> |
为了解决这个问题,你可以使用容器语法,它基于一个注释元素。
|
1
2 3 |
<select data-bind="foreach: items">
<option>Item <!--ko text: name--><!--/ko--></option> </select> |
<!--ko--> 和<!--/ko--> 注释标记作为起始和结束符,定义一个“虚拟元素”,里面包含了标记,Knockout能够识别这种虚拟元素语法和绑定作为你需要的容器元素而存在。
注4:一个关于IE6 白空格
IE6有一个奇怪的现象,如果span有空格的话,它会变成一个空span,如果你编写以下代码,Knockout不会起任何作用。
|
1
|
Welcome, <span data-bind="text: userName"></span> to our web site.
|
IE6不会显示span中间的那个空格,如果你想避免这个问题,你可以在<span>中输入任意内容。比如:
|
1
|
Welcome, <span data-bind="text: userName"> </span> to our web site.
|
其他浏览器或者版本较新的IE浏览器不会出现这个问题。
Text 绑定的更多相关文章
- Knockout 新版应用开发教程之"text"绑定
目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...
- Knockout.Js官网学习(text绑定)
前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数.该绑定在显示<span>或者<em>上非常有用,但是你可以用在任何元素上. 简单绑定 Today's ...
- text绑定(The "text" binding)
目的 text绑定可以使你传递的参数做为文本显示到相关的DOM元素里. 一般会用在如<span>或者<em>这类元素来显示文本,但从技术来讲它可以绑定到任何元素. 示例 Tod ...
- Knockout v3.4.0 中文版教程-11-控制文本内容和外观-text绑定
2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 T ...
- Knockout.js Text绑定
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- knockout之各种数据绑定方法:text、attr、visible、html、css、style绑定
http://knockoutjs.com/documentation/attr-binding.html(Knockout官网文档) 1.text绑定 目的:text 绑定到DOM元素上,使得该元素 ...
- Android中Service通信(二)——绑定Service进行通信
一.把输入文本的数据同步到服务的实例(如何执行服务的内部代码) 绑定服务比启动服务更加方便高效,绑定服务中的直接方法调用比Intent作为载体传输更为快捷得多. 1.activity_main.xml ...
- knockoutJS学习笔记05:控制文本和外观绑定
测试数据: function Person(name,age){ var self = this; self.name = ko.observable(name); self.age = ko.obs ...
- MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定
返回目录 Knockoutjs是微软mvc4里一个新东西,用这在MVC环境里实现MVVM,小微这次没有大张旗鼓,而是愉愉的为我们开发者嵌入了一个实现MVVM的插件,这下面的几篇文章中,我和大家将一起去 ...
随机推荐
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 避免ajax中get方法产生缓存的解决办法
在参数中传一个随机数,就会避免浏览器对get方法异步修改数据缓存,导致不能及时看到最新效果 $.get("<?php echo U('Vip/VipHandouts/change_gr ...
- 使用GoldenGate进行平台迁移和数据库升级(9i->11g)步骤描述
在一个场景中,需要从Solaris SPARC将数据库迁移到Linux X86-64,同时,数据库版本从原有的oracle 9i(9.2.0.5)升级到11g(11.2.0.4)使用OGG的数据同步功 ...
- Coudera-Manager/CDH的安装和部署
由于之前部署的集群采用的是用apache hadoop的方式来实现,但是考虑到运维的成本问题,下面将apache hadoop转换成cloudera cdh.下面主要讲解一下cloudera cdh的 ...
- acm 20140825
为了自己的梦想,一次次的选择坚强.走上acm这条路,怎么也找不到让自己放弃的理由.我喜欢这种竞赛的氛围,我渴望在赛场上飞扬!想想过去的一个学习,自己并没有干点什么有意义的事.acm也没有好好的做!新的 ...
- activeMQ设置admin的用户名和密码
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到 <bean id="securityConstraint" class="o ...
- Android MotionEvent getX() getY() getRawX() getRawY() and View getTop() getLeft()
getRowX:触摸点相对于屏幕的坐标getX: 触摸点相对于按钮的坐标getTop: 按钮左上角相对于父view(LinerLayout)的y坐标getLeft: 按钮左上角相对于父view(Lin ...
- hdu 2029
PS: 逻辑问题... 代码: #include "stdio.h"#include "string.h"int main(){ char a[110]; i ...
- 2016-1-10 手势解锁demo的实现
一:实现自定义view,在.h,.m文件中代码如下: #import <UIKit/UIKit.h> @class ZLLockView; @protocol ZLLockViewDele ...
- Nginx 安装编译配置
./configure --prefix=/usr/local/nginx-1.8.0 --with-http_ssl_module --with-http_spdy_module --with-ht ...