backbone入门小例子
最近听了个backbone的分享,为了避免听不懂,就先做了个小例子
例子很简单,效果如下

基本视图模板:
<script type="tex/template" id="template" >
<span><%=val%></span><span class="swap" style="margin:10px;cursor:pointer;">swap</span><span class="delete" style="margin:10px;cursor:pointer;">delete</span>
</script>
构建基本数据模型和集合:
var Man=Backbone.Model.extend({
defaults:{
name:'张三',
age:'1'
},
});
var ManList = Backbone.Collection.extend({
model:Man
})
基本的视图模型
var ItemView = Backbone.View.extend({
tagName:'li',
/*为视图注册事件*/
events:{
"click span.swap":"swap",
"click span.delete":"remove"
},
initialize:function(){
/*为视图和模型绑定事件*/
_.bindAll(this, 'swap','render','remove','unrender');
this.model.bind('change',this.render);
this.model.bind('remove',this.unrender);
},
render:function(){
var val = this.model.get('name')+""+this.model.get('age');
var html = _.template($("#template" ).html(), {val:val});
$(this.el).html(html);
return this;
},
unrender:function(){
$(this.el).remove();
},
swap:function(){
var swaped = {
name:this.model.get('age'),
age:this.model.get('name')
}
this.model.set(swaped);
},
remove:function(){
this.model.destroy();
}
})
主视图模型
var ListView = Backbone.View.extend({
el:$("body"),
events:{
"click button#add":"addItem"
},
initialize:function(){
/*为主视图和集合绑定事件*/
_.bindAll(this, 'render', 'addItem', 'appendItem');
this.collection = new ManList();
this.collection.bind('add', this.appendItem);
/*初始化主视图*/
this.render();
/*声明主视图的属性*/
this.age = 1;
},
addItem:function(){
this.collection.add(new Man({age:this.age++}))
},
appendItem:function(item){
var itemView = new ItemView({
model: item
});
$(this.el).find('ul').append(itemView.render().el);
},
render:function(){
var self = this;
$(this.el).append('<button id="add">add item</button>');
$(this.el).append("<ul></ul>");
}
})
初始化视图
var listView = new ListView();
backbone入门小例子的更多相关文章
- Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子
Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子 第一个例子都是比较简单的博客园登录界面,就像学习编程语言时候都是从Hello,World!开始. 1 ...
- 基于vue-cli、elementUI的Vue超简单入门小例子
- 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...
- Ajax入门小例子
大牛文章:http://www.cnblogs.com/guduoduo/p/3681296.html ---Ajax基础学习 http:/ ...
- spring+spring mvc+JdbcTemplate 入门小例子
大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒) https://www.cnblo ...
- SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解
SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...
- Python In Action:一、入门小例子
Python In Action这本书真是有点猛,一开头就来这么个例子: import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame ...
- mybatis 不整合spring 入门小例子
先上一个搭建完的项目结构截图: 相对比较重要的配置文件有 db.properties , SqlMappingConfig.xml , mapper/User.xml , log4j.properti ...
- SpringBoot_MyBatisPlus快速入门小例子
快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...
- css01入门小例子
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
随机推荐
- Android FragmentPagerAdapter和FragmentStatePagerAdapter的区别
FragmentPagerAdapter官方解释: This version of the pager is best for use when there are a handful of typi ...
- ThinkPHP - 扩展个人类库 - 以验证码类为例子
首先,在项目目录下创建Class文件夹,用于存储个人类文件. 之后建立Data目录存放所需字体文件,其他的数据也可以放在这个文件夹下. 然后再Conf文件夹下创建verify.php配置文件. 在co ...
- 打印NSLog分类 Foundation+Log.m
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @implementation UIView(Log) + ...
- 【HTML相关】iframe+javascript实现一个表单提交后多个处理文件按序处理
最近在弄一个网页的问题,总结如下. [问题描述] 页面中包括以下几个部分:1)表单form,供用户输入图片文件:2)iframe1,显示a.php文件的内容,a.php接收客户端图片并保存,后台程序处 ...
- 有什么很好的软件是用 Qt 编写的?
作者:尘中远链接:http://www.zhihu.com/question/19630324/answer/19365369来源:知乎 一些出名的例子如下:(wiki搬运) 3DSlicer, a ...
- JSON数组分配输出每个li
有这么一个JSON数组,需求是只需要输出每个数组里面的某个值,不需要全部输出来. var data = [ { ", "Cost":"13,642.41&quo ...
- 基于visual Studio2013解决C语言竞赛题之0507筛选素数
题目
- 斯坦福大学IOS开发课程笔记(第七课第一部分)
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/31462099 作者:小马 这节课的内容太多,分两部分介绍.本节课主要是介绍怎样开发 ...
- 删除: warning C4996: 'sprintf': This function or variable may be unsafe. Consider 方法
可以使用的最简单的方法: 选项Project | Configuration Properties | C/C++ | Preprocessor | Preproc ...
- T-Sql中的pivot和unpivot
写在前面 今天休息,抽空了解下pivot和unpivot,记得老师讲行转列的时候,貌似提到过,不过他说的最多的就是“这个你们私下可以自己学,很简单的...”,简单你咋不讲呢,不吐槽他了,还是好好整理下 ...