backbone实例01
backbonejs往简单说,就是一前端MVC框架,适合用于单页面、复杂的前端逻辑。
直接上代码,里面都有相关注释,重点是理解清楚view、collection、model这三者如何关联调用。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>backbone实例01</title>
</head>
<body>
<input type="text" id="add">
<ul id="man-list">
</ul>
<script src="vendor/zepto.js"></script>
<script src="vendor/underscore.js"></script>
<script src="vendor/backbone.js"></script>
<script>
(function ($) {
//定义model
var People = Backbone.Model.extend({
defaults: {
name: null
}
}); //定义Collection
var Peoples = Backbone.Collection.extend({
model: People,//关联上了相关model
initialize: function(options) {
this.bind('add',options.view.show);//这里事件监听关键
}
}); //定义view
var AppView = Backbone.View.extend({
el: $("body"),
initialize: function() {
this.peoples = new Peoples({view: this});//关联上集合
},
events: {
'keypress #add': 'addMan'
},
addMan: function(e) {
var key = e.which;
if(key !== 13) return;
var name = $(e.target).val();
var people = new People({name:name});
this.peoples.add(people);//添加model到集合,与此同时会触发集合中的监听方法
},
show: function(model){//集合调用view中的方法,并能将集合中的model传递过来
var template = "<li>你们好,我是"+model.get('name')+",请多多关照!</li>";
$('#man-list').append(template);
$('#add').val('');
}
}); new AppView();
})(Zepto);
</script>
</body>
</html>
该例中,入口是Appview,其初始化时就关联了一collection,在该collection中关联上了model,并添加了‘add’监听方法,该方法在往集合中添加model时出发,这里在出发时会调用view中的相关方法渲染页面。
backbone实例02。。。。。进行中。。。。。
backbone实例01的更多相关文章
- Backbone实例todos分析
源码来自:http://todomvc.com/examples/backbone/ 这是一个用Backbone.js完成的待办事项实例,精简但完善,可以帮助很好的帮助理解Backbone的API,M ...
- matplotlib 绘图实例01:正弦余弦曲线
该讲的实例结果如下图所示: 第01步:导入模块,并设置显示中文和负号的属性: import matplotlib.pyplot as plt import numpy as np plt.rcPara ...
- Node聊天程序实例01
作者:vousiu 出处:http://www.cnblogs.com/vousiu 本实例参考自Mike Cantelon等人的<Node.js in Action>一书. 本实例要实现 ...
- Vuejs实例-01使用vue-cli脚手架搭建Vue.js项目
[TOC] 1. 前言 vue-cli 一个简单的构建Vue.js项目的命令行界面 整体过程: $ npm install -g vue-cli $ vue init webpack vue-admi ...
- obj-c编程15[Cocoa实例01]:一个会发声的随机数生成器
哇!终于到了obj-c编程系列的第15篇喽,一路走过来满不容易的哦!(怎么个意思,这才哪到哪啊!),为了能够更好的练习obj-c在Cocoa框架上的编程,接下来会以N篇Cocoa实例的博文来巩固和记忆 ...
- Spring.Net 简单实例-01(IOC)
1.话不多说看操作.新建"Windows窗体应用程序" 2:通过配置文件创建IOC容器 首先引入安装包 3:定义一个接口(更好的体现封装性,当然也可以直接使用类) 定义一个类,实现 ...
- Struts2+DAO层实现实例01——搭建Struts2基本框架
实例内容 利用Strust2实现一个登陆+注册功能的登陆系统. 实现基础流程:
- 一个简单的backbone实例(基于139邮箱)
先看一下效果图: 代码如下: <!doctype html> <html lang="en"> <head> <meta http-equ ...
- Vue + ElementUI的电商管理系统实例01 登录表单
效果图: 1.首先来根据Element网站实现布局: <template> <div class="login_container"> <div cl ...
随机推荐
- Collection
集合(collection): 使用存储实例的变长的容 容器名 存储的元素类型 长度 数组 基本和引用 定长 集合 引用 ...
- jackson注解使用心得
maven依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId ...
- 记录一写Android常用API
Location.getLatitude() 纬度 Location.getLongitude() 经度 获取 运行 应用包名 顶层交互 TOP包名 主Activity //获取当前系统中 正在运行的 ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
- Shell 重定向
一直没搞懂 &> 和 <& 是表示什么意思. 今天自己总结一下,希望自己能理解它的真正含义. 重定向标准输入输出,切记 “1” 和 “>”之间没有空格 $ > ...
- ElasticSearch返回不同的type的序列化
总体思路是: 利用json序列化的别名方法,反序列化到不同的字段上: 因为别名方法不支持多个别名,所以不得不根据不同的type,定义了多套适配内容. 最终在属性上进行选择. 本示例ElasticSea ...
- Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)
一.使用单文件封包工具 单文件封包工具,顾名思义就是将可执行文件及其相关依赖打包成单个可执行文件的工具. 这里推荐两个单文件封包工具:Enigma Virtual Box和BoxedApp Packe ...
- Jquery实现静态切换tab
1. <div id="tabs"> <ul> <li><a href=</a></li> <li>& ...
- 基于HTML5和JS实现的切水果游戏
切水果游戏曾经是一款风靡手机的休闲游戏,今天要介绍的就是一款网页版的切水果游戏, 由JavaSript和HTML5实现,虽然功能和原版的相差太大,但是基本的功能还是具备了,还是模仿的挺逼真,有一定的J ...
- Java语言程序设计(基础篇) 第三章 选择
第三章 选择 3.8 计算身体质量指数 package com.chapter3; import java.util.Scanner; public class ComputeAndInterpret ...