1.Knockoutjs介绍
Knockout是一款很优秀的JavaScript库,KnockoutJS是一款MVVM前端框架,从框架的模式中我们可以看出,在页面中需要有三个必须的元素:M(模型)、V(视图)和VM(视图模型)。

一些很复杂的话,目前在入门阶段,其实很多事不清楚的,目前只要先形成一个概念,就是说knockjs有主要有两个方面:一个是数据,一个是视图。带着这样的一个初始观念去学习,会让我们更快地掌握它的相关知识。

2.Knockoutjs小例子
像这类的框架无非就是需要多用,毕竟框架更新的非常快,我们要想快速掌握一门新的技术,多去动手实践就好了,先看例子

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 2.视图 -->
姓:<input type="text" data-bind="value:firstname"><br><br>
名:<input type="text" data-bind="value:lastname"><br><br>
世界:<input type="text"  data-bind="value:uhome"><br><br><p>信息显示:你好<span data-bind="text:fullname"></span>,<span data-bind="text:uhome"></span>欢迎你</p><script src="js/knockout.js"></script><script><!-- 1.模型 (方式一)-->
var viewModel=function(first,last,home){this.firstname=ko.observable(first);this.lastname=ko.observable(last);this.uhome=ko.observable(home);this.fullname=ko.computed(function(){return this.firstname()+"  "+this.lastname();},this);
} <!-- 3.绑定关系-->
ko.applyBindings(new viewModel("lanfang","he","ko world!"));
</script>
</body>
</html>

上面就是一个简单的小例子,记得导入js库.

3.小例子2

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title></head>
<body>
<p>输入</p>
<!-- 动态绑定 输入框的信息和uname upass绑定  input  value-->
<p>uname:<input data-bind="value:uname,valueUpdate:'afterkeydown'"></p>
<p>upass:<input data-bind="value:upass,valueUpdate:'afterkeydown'"></p><p>输出</p>
<!-- 动态绑定 展示的信息和uname upass绑定  strong text -->
<p>uname:<strong data-bind="text:uname"></strong></p>
<p>upass:<strong data-bind="text:upass"></strong></p><script src="js/knockout.js"> </script><!-- 引入knockoutjs -->
<script>
function appViewModel(){ //给附一个默认的值  当前面的输入框改变的时候,会自动修改数据
this.uname=ko.observable("test");
this.upass=ko.observable("psw");
}
<!-- 激活绑定-->
ko.applyBindings(appViewModel());
</script>
</body>
</html>

4.填充下拉框

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>student:<select data-bind="options:allStudents,optionsText:'stuName'"></select>                                <br> <br></body><script src="js/knockout.js"> </script><!-- 引入knockoutjs -->
<script>var allStudents = [{ stuName: 'zhangsan', gender: '男', stuNum: '1001' },{ stuName: 'zhangsan2', gender:  '女', stuNum: '1002' },{ stuName: 'zhangsan3', gender:  '男', stuNum: '1003' }];
var viewModel = { };ko.applyBindings(viewModel); // Makes Knockout get to work// 注意:ko. applyBindings需要在上述HTML之后应用才有效
</script></html>

5.下拉框进阶

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>student:<select data-bind="options:allStudents,optionsText:'stuName',value:findStu"></select>                                <br> <br>You've chosen:<b data-bind="text:findStu().gender"></b>(number: <span data-bind='text:findStu().stuNum '></span>)
</body><script src="js/knockout.js"> </script><!-- 引入knockoutjs -->
<script>var allStudents = [{ stuName: 'zhangsan', gender: '男', stuNum: '1001' },{ stuName: 'zhangsan2', gender:  '女', stuNum: '1002' },{ stuName: 'zhangsan3', gender:  '男', stuNum: '1003' }];
var viewModel = { findStu:ko.observable(allStudents[0])};ko.applyBindings(viewModel); // Makes Knockout get to work// 注意:ko. applyBindings需要在上述HTML之后应用才有效
</script></html>

KnockoutJs简单入门知识讲解相关推荐

  1. 和与余数的和同余理解_5 同余 ——数论入门知识讲解系列

    数学竞赛 数论是纯粹数学的分支之一,主要研究整数的性质,按研究方法分为初等数论和高等数论.中学生(甚至小学生)课外数学兴趣小组的许多内容是属于初等数论的,各级别数学竞赛也会把初等数论作为重点内容进行考 ...

  2. java mysql 有什么用_java web mysql 入门知识讲解

     MySQL学习笔记总结 一.SQL概述: SQL:Structured Query Language的缩写(结构化查询语言) SQL工业标准:由ANSI(ISO核心成员) 按照工业标准编写的SQ ...

  3. js 串口通信mscomm接收undefined_VB串口通信应用开发入门知识讲解

    VB是一门功能强大.简单易学的程序语言.它可以方便快捷地编制适用于数据处理.多媒体等方面的程序,而且利用ActiveX控件中的MSComm部件还能十分方便地开发出使用计算机串口的通信程序. 今天,我们 ...

  4. 手写html基础格式,手写服务器_HTML 简单入门知识

    1.HTML HTML(HyperText Markup Language) 超文本标记语言,用于描述网页文档的一种标记语言. HTML 不是一种编程语言,而是一种标记语言 (markup langu ...

  5. MySql入门知识(一)

    概述 MySQL是一个真正多用户,多线程结构化查询语言数据库服务器.MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL的SQL语言是用于访问数据 ...

  6. 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world...

    2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...

  7. C语言超简单入门——基础知识

    C语言超简单入门--基础知识 一.进制转换 进制:二进制.八进制.十进制.十六进制 进制的脚标: 二进制:B 如:101B 八进制:Q 如:12Q 十进制:D 如:10D 十六进制: H 如:123H ...

  8. 计算机硬件知识讲解,电脑硬件入门知识详解(三大重点篇)

    电脑硬件,这个我想大家应该都听说过.但要说到了解,我想没有几个人会知道吧.现在人们的生活水平提高了,电脑对我们大家来说也不是什么新鲜的事物了.但大家也只限于会用吧,如果电脑出现什么问题,我们只会关机重 ...

  9. PHP简单入门基础知识

    PHP简单入门基础知识 作为一个web前端开发者第一天开始学php,整理的以下笔记,笔记并不完善,只是自我觉得和html,js有差别的地方做了下入门笔记 PHP 变量规则: 变量以 $ 符号开头,其后 ...

最新文章

  1. 六月开发语言排行榜出炉 ActionScript回前20
  2. java hibernate详细_Java事务管理学习之Hibernate详细介绍
  3. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )
  4. 京东对话中国农民丰收节交易会 供应链下沉打通产销全链
  5. 通过scatter图寻找噪音
  6. 无法访问此网站localhost 拒绝了我们的连接请求_官方教程丨如何在IPFS上创建托管个人网站?...
  7. springcloud工作笔记099---springboot集成netty,进行线程管理,socket通讯
  8. html源码加密ensure-china_php源码加密方法详解
  9. 零基础学python好学吗-想要0基础学python要怎么做?python好学吗?
  10. 常用的三款专业的OCR文字识别软件
  11. 小米6刷android 8.0,小米小米6(安卓8.0)手机快速救砖,线刷教程分享,小白轻松救活手机...
  12. python在linux下打包程序_Python打包程序
  13. JAVA多线程之状态转换图
  14. 2019全球IT行业薪酬报告:平均年薪超70万!最高薪职位竟是...
  15. 知乎上的有哪些较好的壁纸网站?
  16. 爬取微博视频页并批量下载python+requests+ffmpeg(连接视频和音频)
  17. 【博客33】使用 “NVI“解决缺省参数绑定问题
  18. 尤雨溪:TypeScript不会取代JavaScript
  19. ajax请求遇到的一些乱码问题及其解决
  20. 水星MW300R无线路由器无线网频繁掉线的解决方法除了重启路由还有???

热门文章

  1. AndroidStudio实现拨打电话和发短信(kotlin)
  2. oracle biee 日常运维,BIEE日志及几个重要的配置文件
  3. 【史诗级干货长文】HMM模型
  4. kuangbin-poj题目归类
  5. 阿里携人工智能新进展亮相法国Viva Tech峰会
  6. C/C++性能提升之cache分析
  7. TCP和UDP------报文格式
  8. 爱奇艺《中国新歌声》第二季破6亿 强平台助推综艺影响力全面爆发
  9. Python字典使用方法大全
  10. jsplumb 绘制页面链接线