<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>模仿TODOS,写了一个todos</title>
<script src="../3.20/jquery.js"></script>
<script src="../3.20/underscore-1.1.6.js"></script>
<script src="../3.20/backbone.js"></script>
</head>
<body>
<div id="app">
<ul id="contain"> </ul>
<a href="###" class="delAll">dsdfelAll</a>
<a href="###" class="addDefault">addDefault</a>
</div>
<script type="text/template" id="personTpl">
<li>
<span><%=name%></span>
<b><%=age%></b>
<button>del</button>
<a>add</a>
</li>
</script>
</body>
<script>
var M = Backbone.Model.extend({
defaults : {
name : "qihao",
age : 27
}
});
var C = Backbone.Collection.extend({
model : M
});
var c = new C; var V1 = Backbone.View.extend({
tagName : "li",
initialize : function(){
},
events : {
"click button" : "destory",
"click a" : "addOne"
},
tpl : _.template( $("#personTpl").html() ),
render : function(){
$(this.el).html( this.tpl( this.model.toJSON() ) )
return this;
},
destory : function(){
c.remove(this.model)
},
addOne : function(){
var name = prompt("name");
var age = prompt("age");
c.add(new M({name : name ,age : age}));
}
});
var V2 = Backbone.View.extend({
el : $("#app"),
events : {
"click .delAll" : "delAll",
"click .addDefault" : "addDefault"
},
initialize : function(){
this.c = c;
//数据模型的绑定this,要这样用才行;
c.bind("all",this.renderAll,this)
},
renderAll : function(){
this.el.find("#contain").html(" ");
var _this = this;
this.c.each(function(m){
_this.renderSingal(m)
});
},
renderSingal : function(m){
this.el.find("#contain").append( (new V1({model : m})).render().el )
},
delAll : function(){
this.el.find("#contain").html(" ");
},
addDefault : function(){
this.renderSingal( new M )
}
}); c.add( new M({name : "a", age : 2}) );
c.add( new M());
var v2 = new V2()
v2.renderAll()
</script>
</html>

  

50行代码仿backbone_todos的更多相关文章

  1. python爬虫实战:利用scrapy,短短50行代码下载整站短视频

    近日,有朋友向我求助一件小事儿,他在一个短视频app上看到一个好玩儿的段子,想下载下来,可死活找不到下载的方法.这忙我得帮,少不得就抓包分析了一下这个app,找到了视频的下载链接,帮他解决了这个小问题 ...

  2. 50行代码实现python计算器主要功能

    实现功能:计算带有括号和四则运算的式子   3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 基本思路:使用正则表达式提取出每一层 ...

  3. 50行代码实现缓存,JAVA内存模型原理

    遇见这样的高人怎么办??下面是一个简单缓存的实现,相当牛叉!自己看吧,只有50行代码. 摘自:http://www.oschina.net/code/snippet_55577_3887 import ...

  4. HTML5游戏实战(1):50行代码实现正面跑酷游戏

    前段时间看到一个"熊来了"的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下用Gamebuilder+CanTK开发正面跑酷游戏的基本方法. CanTK(C ...

  5. 50行代码实现GAN | 干货演练

    2014年,Ian Goodfellow和他的同事发表了一篇论文,向世界介绍了生成对抗网络(GAN).通过对计算图和博弈论的创新性组合,他们表明如果有足够的建模能力,两个相互对抗的模型可以通过普通的反 ...

  6. 基于requirejs+bluebird,50行代码实现轻巧实用的前端CMD加载器

    首先是github地址,可以用git克隆命令也可以直接在git页面下载 https://github.com/kazetotori/js-requireAsync 下载下来后目录结构是这样的 -pac ...

  7. [Lua]50行代码的解释器,用来演示lambda calculus

    嗯,来写写经过: 在知乎上看见用Belleve牛用javascript写了一个精简的lisp解释器 => 我也想写一个,用lua写,能多简单呢? => 写了一个阉割的scheme解释器,包 ...

  8. OpenCV图像识别初探-50行代码教机器玩2D游戏【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  9. 50行代码实现的高性能动画定时器 raf-interval

    写在前面 raf-interval 是基于 window.requestAnimationFrame() 封装的定时器. Github: https://github.com/dntzhang/raf ...

随机推荐

  1. 怎样用ZBrush中复数对象进行工作

    在ZBrush®中有两种方法可以使用复数对象即“多边形组”和“次工具”. 若有疑问可直接访问:http://www.zbrushcn.com/jichu/fushu-duixiang.html 什么是 ...

  2. 基于对话框的MFC应用程序基本结构

    新建一个基于对话框的MFC应用程序,假设命名为 Test:则该应用程序在刚创建的时候,有4个非常重要的文件和3个类: 4个非常重要的文件 1.Test.h 2.Test.cpp (应用程序类头文件) ...

  3. “display:block-inline形式的Span或Div中添加文字后,导致Span或Div排版掉落、错位”的原因及解决方法

    最近在使用3个span(或div)制作带圆角边框的按钮时,按照常识,把span的display设置成inline-block,这样就可以设置span的width和height了,很爽的~ 可是当我在中 ...

  4. 头像上传功能实现,PC端的需要做兼容

    暂时实现的效果: http://sandbox.runjs.cn/show/v2vkds3j <form action=""> <img id="vie ...

  5. PHP中的魔术变量

    PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量. 名称 说明 __LINE__ 文件中的当前行号. __FILE__ 文件的完整路径和文件名 ...

  6. 14Spring_AOP编程(AspectJ)_环绕通知

    在目标方法执行前后,进行代码增强 (阻止目标方法的执行 ) 环绕通知实现任何通知效果. 案例如下: 案例结构:

  7. jade 渲染js片段

    script. str = !{JSON.stringify(val)}; res.render('wxpay', {val:result});

  8. [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介

    之前写过一篇短文对比过几种数字高程数据的区别:5种全球高程数据对比,这篇文章简要介绍下如何下载这些数据.       1.DLR的数字高程数据.该数据也是SRTM(shuttle radar topo ...

  9. HttpClient, 使用C#操作Web

    我们知道, .Net类库里提供了HttpWebRequest等类,方便我们编程与Web服务器进行交互. 但是实际使用中我们经常会遇到以下需求,基础类里没有直接提供相应的功能(WebClient类包含这 ...

  10. [CareerCup] 1.2 Reverse String 翻转字符串

    1.2 Implement a function void reverse(char *str) in C or C++ which reverses a null-terminated string ...