按照汤姆大叔的教程,学习了KnockJs相关知识,练习一下KnockoutJs的绑定语法。

相关的教程大家可以去看 汤姆大叔的博客

练习代码下载

由于没有环境,代码直接用记事本写的,可能比较乱,仅作个人备忘。

<html>
<head>
<title>绑定语法</title>
<script type="text/javascript" src="js/knockout-2.3.0.js" ></script>
<style>.css1{color: #0000ff;}</style>
</head>
<body>
<!-- Visible绑定语法 --> <div data-bind = "visible:pVisible" > Visible 绑定</div>
<div data-bind = "visible:strVisible().length > 0 " > 条件表达式 绑定 </div> <!-- text绑定语法 -->
<span data-bind = "text:pText" ></span> <br/>
<span data-bind = "text:fnText" ></span><br/>
<span data-bind = "text:htmlText" ></span><br/> <!-- HTML绑定语法 -->
<div data-bind = "html:pHtml" ></div><br/> <!-- CSS 绑定 -->
<span data-bind = "css:pCss" >CSS绑定</span> <br/> <!-- Style绑定 -->
<span data-bind = "style:{ color:pStyle} ">Style绑定</span><br/> <!-- attr绑定 -->
<a data-bind = "attr : {href:attrHref,text:attrText} " >百度</a><br/> <!-- Click绑定 -->
<button data-bind="click: pClick" >Click</button> <!-- Event绑定 -->
<div data-bind="event:{mouseover:pOver}" >Event 绑定 </div> <!-- Submit绑定 -->
<form data-bind = "submit:pSubmit" >
...<input type="text" value="" /> <br/>
<button type="submit" >Submit</button>
</form> <!-- enable/disable 绑定 -->
<input type='checkbox' data-bind="checked: pChecked"/>
<input type='text' data-bind="enable: pChecked" value="enable" />
<input type='text' data-bind="disable: pChecked" value="disable" /><br/> <!-- Value绑定 -->
afterkeydown:<input type="text" data-bind="value:pValue,valueUpdate:'afterkeydown'" />
change(默认):<input type="text" data-bind="value:pValue" />
keyup::<input type="text" data-bind="value:pValue,valueUpdate:'keyup'" />
keypress::<input type="text" data-bind="value:pValue,valueUpdate:'keypress'" /> <!-- Checked 绑定 -->
<div><input type="checkbox" value="t1" data-bind="checked: pCheckSections"/> Cherry</div>
<div><input type="checkbox" value="t2" data-bind="checked: pCheckSections"/> Almond</div>
<div><input type="checkbox" value="t3" data-bind="checked: pCheckSections"/> Eabjkkkk</div> <!-- Radio 绑定 -->
<div><input type="radio" name="flavorGroup" value="t1" data-bind="checked: pRadio"/> Cherry</div>
<div><input type="radio" name="flavorGroup" value="t2" data-bind="checked: pRadio"/> Almond</div>
<div><input type="radio" name="flavorGroup" value="t3" data-bind="checked: pRadio"/> Monosodium Glutamate</div> <!-- Select 绑定 -->
<select data-bind="options:pOption"></select>
<select data-bind="options:pOption,selectedOptions:pOptionSelected" multiple="true"></select>
<select data-bind="options:pOption2,optionsText:'name',value:pOption2Value,optionsCaption:'请选择'"></select>
<select data-bind="options:pOption2,optionsText:function(item){return item.name+' '+item.value},value:pOption2Value,optionsCaption:'请选择'"></select>
<input data-bind="value:pOption2Value()?pOption2Value().value:'未知' " /> <br/> <!-- uniqueName 绑定 -->
<input type='text' value='uniqueName绑定' data-bind="uniqueName:true" /> </body> <script type="text/javascript">
var viewModel={} ;
//Visible语法
viewModel.pVisible = ko.observable(true) ;
viewModel.strVisible = ko.observable("xxxxxxxx") ; //text绑定语法
viewModel.pText = ko.observable("text") ;
viewModel.fnText = ko.dependentObservable(function(){
return viewModel.pText().length == 0 ? "empty" : "something" ;
});
viewModel.htmlText = ko.observable("<b>font<b>") ; //html绑定
viewModel.pHtml = ko.observable("<b>HTML</b>") ; //CSS绑定
viewModel.pCss = ko.observable("css1") ; //style绑定
viewModel.pStyle = ko.observable("#0000ff") ; //attr绑定
viewModel.attrHref = ko.observable("http://www.baidu.com");
viewModel.attrText = ko.observable("百度"); //Click绑定
viewModel.pClick = function(event){
alert(111);
if(event.shiftKey) {
}
else{
}
}; //event绑定
viewModel.pOver = function(){
alert('over');
} //Submit绑定
viewModel.pSubmit = function(){
alert('Submit');
} //Disable/Enable绑定
viewModel.pChecked = ko.observable(true); //Value绑定
viewModel.pValue = ko.observable("test"); //checked绑定
viewModel.pCheckSections = ko.observableArray(["t1","t2"]);
viewModel.pCheckSections.push("t3"); //RadioButton绑定
viewModel.pRadio = ko.observable("t1"); //options绑定
viewModel.pOption = ko.observableArray(["法国","中国","西班牙"]);
viewModel.pOption.push("美国");
viewModel.pOptionSelected = ko.observable(["中国","西班牙"]);
var person = function(pname,pvalue){
this.name = pname;
this.value = pvalue;
}
viewModel.pOption2 = ko.observableArray([
new person("Key1","Value1"),
new person("Key2","Value2")
]);
viewModel.pOption2Value = ko.observable(); //应用ViewModel
ko.applyBindings(viewModel);
</script>
</html>

KnockJs 绑定语法的更多相关文章

  1. KnockoutJS 3.X API 第四章(14) 绑定语法细节

    data-bind绑定语法 Knockout的声明性绑定系统提供了一种简洁而强大的方法来将数据链接到UI. 绑定到简单的数据属性或使用单个绑定通常是容易和明显的. 对于更复杂的绑定,它有助于更好地了解 ...

  2. KnockoutJS(3)-绑定语法

    绑定语法大致分为2种: 1. 数据绑定(data-bind syntax) 2. 绑定上下文(Binding Context) 下面针对这2中绑定语法分别介绍一下 1. 绑定上下文(Binding C ...

  3. Knockout应用开发指南 第三章:绑定语法(3)

    原文:Knockout应用开发指南 第三章:绑定语法(3) 12   value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...

  4. Knockout应用开发指南 第三章:绑定语法(2)

    原文:Knockout应用开发指南 第三章:绑定语法(2) 7   click 绑定 目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用 ...

  5. Knockout应用开发指南 第三章:绑定语法(1)

    原文:Knockout应用开发指南 第三章:绑定语法(1) 第三章所有代码都需要启用KO的ko.applyBindings(viewModel);功能,才能使代码生效,为了节约篇幅,所有例子均省略了此 ...

  6. KnockoutJS 3.X API 第五章 高级应用(5) 使用预处理扩展Knockout绑定语法

    注意:这是一种高级技术,通常仅在创建可重用绑定或扩展语法的库时使用. 这不是你通常需要做的时候使用Knockout构建应用程序. 从Knockout 3.0开始,开发人员可以通过提供在绑定过程中重写D ...

  7. 【Vue.js】vue基础: 3种Class和Style绑定语法

    凡是用到了v-bind,那就一定有变量的存在,下面是三种语法的展示: 1. 对象语法: v-bind:class="{active: isActive, 'text-danger': has ...

  8. ko学习二,绑定语法

    补充上个监控数组ko.observableArray() ko常用的绑定:text绑定,样式绑定,数据数组绑定. visible 绑定.属性绑定 1.visible绑定 <div data-bi ...

  9. KnockoutJS 3.X API 第四章 数据绑定(5) 控制流component绑定

    本节目录: 一个例子 API 备注1:仅模板式的component 备注2:component虚拟绑定 备注3:传递标记到component绑定 内存管理 一个例子 First instance, w ...

随机推荐

  1. 学习python第十二天,函数4 生成器generator和迭代器Iterator

    在Python中,这种一边循环一边计算的机制,称为生成器:generator 要创建一个generator,有很多种方法.第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个genera ...

  2. python+scrapy环境搭建步骤描述

    Python3(3.5.4)搭建爬虫系统步骤描述: 1.下载python安装包,路径:https://www.python.org/downloads/windows/  选择3.5.4版本64位的安 ...

  3. 裸机——SD卡

    1.首先要对SD卡有个基础知识 (1) SD = nandflash + 主控IC. 主控IC负责了校验和坏块管理,所以SoC只需要依照时序就可以和SD卡上的主控IC进行数据交换等操作. (2) SD ...

  4. [BZOJ1060][ZJOI2007]时态同步(树形DP)

    [我是传送门] 因为边权只能增加,那么设f[u]为u子树上从i出发到达某个叶节点的最大路径, 显然Ans应该增加f[u]-f[v]-e[i].w Code #include <cstdio> ...

  5. 使用 Ajax

    Ajax( Asynchronous JavaScript and XML) 在 Ajax 中 Asynchronous 是指异步, 代表 客户端(Client 通常是指浏览器) 可以向服务器(Ser ...

  6. CSS3 Shape ---使用形状改变旁边内容的布局

    注意 本文所实现的功能,在浏览器的支持上并不好,除chrome浏览器外其余的大部分浏览器均不支持,虽然可以使用polyfill解决,但也不能很好的支持,有时也会出错 polyfill使用方法 下载po ...

  7. java 值传递 和 引用传递

    参考:(http://www.cnblogs.com/woshimrf/p/5263018.html) 参考:(http://www.cnblogs.com/binyue/p/3862276.html ...

  8. jsUnpacker

    EVAL function executeEval(){ let evalCodeElt = document.getElementById("eval_code"); let e ...

  9. gprof使用介绍 (gcc -pg) [转]

    原文出处: http://blog.csdn.net/unbutun/article/details/6609498 linux服务端编程,性能总是不可避免要思考的问题. 而单机(严格的说是单核)单线 ...

  10. 《算法》C++代码 Floyd

    今天写写最短路径的Floyd算法(有翻译叫弗洛伊德,不过这奇葩翻译用来读读就好……). 这个算法的实质,广义来讲,其实是DP(动态规划).其实按说,算法应该先说说什么贪心.搜索.DP.二分之类的基本算 ...