使用JavaScript实现表现和数据分离
- <!DOCTYPE html>
- <html lang="zh">
- <head>
- <meta charset="utf-8">
- <title></title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="">
- <meta name="author" content="wyf">
- <script src="jquery-2.1.1.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- //定义一个控制器,负责将用户操作映射到模型上。
- var dataController = {
- start : function(){
- this.view.start();
- },
- set : function(name){
- this.model.setName(name);
- }
- };
- //定义一个数据模型(负责数据的存储及查询)
- dataController.model = {
- nameModel : {
- "wyf" : "Java",
- "zz" : "CSharp",
- "zq" : "Javascript"
- },
- name : null,
- //数据模型负责业务逻辑和数据存储
- setName : function(name){
- this.name = this.nameModel[name] ? name : null;
- this.onChange();
- },
- //通知数据同步更新
- onChange : function(){
- dataController.view.update();
- },
- //相应视图对当前状态的查询
- getResult : function(){
- return this.name ? this.nameModel[this.name] + this.name : "错误";
- }
- };
- //定义视图(视图专门管理页面上发生的事件等)
- dataController.view = {
- //用户触发change事件
- start : function(){
- //原生添加事件
- //var selectNode = document.getElementById("selectName");
- //selectNode.addEventListener("change", this.onChange, false);
- //jquery添加事件
- $("#selectName").change(this.onChange);
- },
- onChange : function(){
- //原生Javascript获取select选中项值
- //var selectNode = document.getElementById("selectName");
- //var index = selectNode.selectedIndex;// selectedIndex代表的是你所选中项的index
- //dataController.set(selectNode.options[index].value);
- //Jquery获取select选中项的值
- dataController.set($("#selectName").val());
- },
- update : function(){
- $('#divResult').html(dataController.model.getResult());
- }
- };
- dataController.start();
- });
- </script>
- </head>
- <body>
- <select id="selectName">
- <option value="wyf">哈哈哈</option>
- <option value="zz">嘻嘻嘻</option>
- <option value="zq">嘿嘿嘿</option>
- </select>
- <div id="divResult"></div>
- </body>
- </html>
使用JavaScript实现表现和数据分离的更多相关文章
- 【web前端面试题整理07】我不理解表现与数据分离。。。
拜师传说 今天老夫拜师了,老夫有幸认识一个JS高手,在此推荐其博客,悄悄告诉你,我拜他为师了,他承诺我只收我一个男弟子..... 师尊刚注册的账号,现在博客数量还不多,但是后面点会有干货哦,值得期待. ...
- 表现与数据分离;前台MVC
无意间看到一个web前端招聘要求:表现与数据分离 这名词对我非常陌生,我就去百度了下 由于有各种莫名其妙的需求,所以才会出现我们前端MVC这样的莫名其妙的东西... 我们的html就是model,我们 ...
- mvc中的表现和数据分离怎么理解?
使用过 JavaScript框架(如 AngularJS, Backbone)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加 ...
- Appium+python自动化(三十)- 实现代码与数据分离 - 数据配置-yaml(超详解)
简介 本篇文章主要介绍了python中yaml配置文件模块的使用让其完成数据和代码的分离,宏哥觉得挺不错的,于是就义无反顾地分享给大家,也给大家做个参考.一起跟随宏哥过来看看吧. 思考问题 前面我们配 ...
- Libscore – 收集 JavaScript 库的使用数据
Libscore 扫描网络上成千上万的网站,收集统计 JavaScript 库的使用数据.在搜索框中,输入关键词,例如 jQuery, Modernizr, $.ui 或者 $.fn.fancybox ...
- Robot Framework--05 案例设计之流程与数据分离
转自:http://blog.csdn.net/tulituqi/article/details/7651049 这一讲主要说一下案例设计了.还记得我们前面做的case么?先打开浏览器访问百度,输入关 ...
- IOS第七天(2:UiTableView 加上数据分离)
****加上数据分离 #import "HMViewController.h" #import "HMStudent.h" @interface HMViewC ...
- 如何使用JavaScript和正则表达式进行数据验证
利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证 ...
- RobotFramework 数据分离
RobotFramework 数据分离分为三种 1. Run 添加参数 2. 外部的Python文件 3. 读取Excel Run 添加参数 (适用于jenkins) 使用-v 参数名:参数值 使用外 ...
随机推荐
- 游戏AI技术 2
[Unity3D人工智能编程精粹 2] 1.跟随领队行为. 用靠近(Seek)或追逐(Pursuit)实现跟随领队行为并不好.在Seek中,AI角色会被推向领队,最终与领队占据相同位置.而Pursui ...
- DIV实现垂直居中的几种方法
说道垂直居中,我们首先想到的是vertical-align属性,但是许多时候该属性并不起作用.例如,下面的样式并不能达到内容垂直居中显示 div { width:200px; height:300px ...
- eclipse环境的搭建(转载)
原文地址:http://hanqunfeng.iteye.com/blog/982182 此文章发表于2011年到2012年 使用eclipse真的有年头了,相信java程序员没有不知道它的,最近在给 ...
- redis 4 集群重启与数据导入
1.redis 4 平时启用aof db与每天的完整备份. 2.集群状态检查 cluster info 检查集群状态 cluster nodes 检查节点状态 redis-cli -c -p 7000 ...
- vue中使用全局函数
方法一: 在mian.js中写入函数: Vue.prototype.bb = function () { alert('OK'); } 然后在任何组件中都可以调用: this.bb() ...
- 准备面试-DFT
问题:面试DFT岗位的准备工作 1.在EETOP上搜索DFT看到的一些要求 1.要弄明白DCSCAN.ACSCAN.MBIST.边扫等原理, 2.要会利用相应的Synopsys或Mentor公司工具! ...
- TOJ 3973 Maze Again && TOJ 3128 简单版贪吃蛇
TOJ3973传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3973 时间限制(普通 ...
- python 中 类型转换 bytes
https://www.cnblogs.com/sesshoumaru/p/5980090.html
- f5 SNAT
request过程: 1.真实源地址(3.3.3.3)将数据包发给f5虚拟的vs地址(1.1.1.5:80): 2.f5将真实源地址(3.3.3.3)转换成SNAT地址(1.1.1.100),并将vs ...
- JavaFX
[AWT-SWING-JAVA FX] 多平台.多应用的现有通用类 [inner class] (member class)inside another class, outside any meth ...