当前位置: 首页 > 编程日记 > 正文

Backbone.js学习笔记 Hello World!

使用Backbone.js 和 MVC 架构创建一个典型的Hello world项目。虽然是“杀鸡用牛刀了”,毕竟是我第一次使用Backbone.js

依赖

  • jQuery 1.9.1
  • Undersore.js 1.5.0
  • Backbone.js

开始

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>backbone日常练习</title>
</head>
<body>
<div></div>
<script src="js/jquery.min.js"></script>
<script src="js/Underscore.min.js"></script>
<script src="js/backbone-min.js"></script><script>// 开启Backbone学习之旅
</script>
</body>
</html>

在 extend 调用里设置指定的 routes 属性:

var router = Backbone.Router.extend({routes: {' ': 'home'}
});

Backbone中routes 属性需要下面的格式: ‘path/:param’: 'action',它实现了是当URl是 filename#path/param时, 触发名为action 的函数(在Router 对象里定义)。然后添加一个 home 路由:

var router = Backbone.Router.extend({routes: {' ': 'home'}
});

现在我们需要添加一个 home 函数:

var router = Backbone.Router.extend({routes: {' ': 'home'}‘home’: function (){// 渲染 HTML}
});

添加创建和渲染 View 的逻辑。现在先定义 homeView:

var homeView = Backbone.View.extend({    
});

然后给 homeView 添加属性

var homeView = Backbone.View.extend({    el: 'body',teplate: _.template('Hello world!')
});

el 是一个保存 jQuery 选择器的字符串,也可以使用'.'作为类和'#'作为ID名。template属性被赋值给传入 Hello World 的 Underscore.js 函数 template 运行的结果。

渲染 homeView, 我们使用 this.$el, 这是一个 jQuery 对象,它指向 el 的属性,使用 jQuery.html() 函数使用 this.template() 的结果替换 HTML。 下面是完整的 homeView 代码:

var homeView = Backbone.View.extend({el: 'body',template: _.template('Hello World'),render: function (){this.$el.html(this.template({}));}});

现在我们返回到 router,添加两行到 home 函数:

var router = Backbone.Router.extend({routes: {'': 'home'},initialize: function (){// 一些在对象初始化的时候执行的代码},home: function (){this.homeView = new homeView;this.homeView.render();}});

第一行创建了一个 homeView 对象并且赋值给 router 的 homeView 属性。第二行调用 homeView 对象的 render() 方法,触发 Hello World! 输出。

最后,启动整体 Backbone 应用,为了保证 Dom 完全加载, 用 $(function (){}) 包装器调用 new router:

var app;
$(function (){app = new router;Backbone.history.start();
});

完整DEMO

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>backbone日常练习</title>
</head><body><div></div><script src="js/jquery.min.js"></script>
<script src="js/Underscore.min.js"></script>
<script src="js/backbone-min.js"></script><script>var app;var router = Backbone.Router.extend({routes: {'': 'home'},initialize: function (){// 一些在对象初始化的时候执行的代码},home: function (){this.homeView = new homeView;this.homeView.render();}});var homeView = Backbone.View.extend({el: 'body',template: _.template('Hello World'),render: function (){this.$el.html(this.template({}));}});$(function (){app = new router;Backbone.history.start();});</script>
</body>
</html>

相关文章:

一文速览机器学习的类别(Python代码)

作者&#xff1a;泳鱼来源&#xff1a;算法进阶机器学习按照学习数据经验的不同&#xff0c;即训练数据的标签信息的差异&#xff0c;可以分为&#xff1a;*监督学习&#xff08;supervised learning&#xff09;*非监督学习&#xff08;unsupervised learning&#xff09;*半监…

Linux下分割与合并文件的方法

Linux下分割与合并文件的方法 切割合并文件在linux下用split和cat就可以完成。下面举些实例进行说明。1.文件切割文件切割模式分为两种&#xff1a; 文本文件 二进制模式。 1.1文本模式 文本模式只适用于文本文件&#xff0c;用这种模式切割后的每个文件都是可读的。文本模式又…

将网站程序放在tmpfs下

将网站程序放在tmpfs下然后用nginx直接做对外服务呢varnish或者squid都是利用内存和它的连接数来做到加速服务.但是如果是squid->nginx->fastcgi->mysql这样当中很多连接是开销在内部的连接之中而且如果客户端请求php.squid还需要将请求再转发至nginx,然后nginx再转发…

docker 连接容器

1.通过端口映射 sudo docker run -d -P training/webapp python app.py 容器有一个内部网络和IP地址&#xff08;在使用Docker部分我们使用docker inspect命令显示容器的IP地址&#xff09; -P 标记创建一个容器&#xff0c;将容器的内部端口随机映射到主机的高端口49000到4990…

新进展!英伟达用 AI 给纪录片配音,情绪语调拿捏得稳稳地

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; AI 已经将合成语音从单调的机器人电话和传统 GPS 导航系统转变为智能手机和智能扬声器中动听的虚拟助手。 虽然日常和Siri、小爱或小度等对话时声音还是很机械&#xff0c;但最新的技术进展显示&#x…

揭开Annotation的面纱

Annotation是Java5、6只后的新特征&#xff08;中文称之为注解&#xff09;&#xff0c;并且越来越多的得到了应用&#xff0c;比如Spring、Hibernate3、Struts2、iBatis3、JPA、JUnit等等都得到了广泛应用&#xff0c;通过使用注解&#xff0c;代码的灵活性大大提高。这些都是…

使用Nginx的proxy_cache缓存功能取代Squid

[文章作者&#xff1a;张宴 本文版本&#xff1a;v1.2 最后修改&#xff1a;2009.01.12 转载请注明原文链接&#xff1a;http://blog.s135.com/nginx_cache/]  Nginx从0.7.48版本开始&#xff0c;支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key&#xff0c;用…

oracle grant 权限

grant connect,resource,dba to user;CONNECT角色&#xff1a; --是授予最终用户的典型权利&#xff0c;最基本的 CREATE SESSION --建立会话 RESOURCE角色&#xff1a; --是授予开发人员的 CREATE CLUSTER --建立聚簇 CREATE …

技术沙龙 | TeaTalk 带你深度探索 SDN 网络技术再创新

越来越多的企业、行业和政府机关顺应企业数字化转型、云服务和国家政策等趋势将业务迁移上云。随着移动云的快速发展&#xff0c;对网络提供差异化的服务能力也提出了很多新的考验。大规模数据中心、虚拟化 SDN 网络技术及超融合软硬一体可编程设备在云网络的应用已成为行业发展…

利用windows 2003实现服务器群集的搭建与架设(一) NLB群集的创建与架设

实验场景&#xff1a;西安凌云系统高科技有限公司利用IIS搭建了一个WEB站点&#xff0c;域名为nlb.angeldevil.com。由于业务的逐渐增加&#xff0c;网站速度也越来越慢&#xff0c;而且经常出现故障&#xff0c;为公司的利益带来了很多的不便&#xff1b;公司决定使用两台WEB站…

nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除

一&#xff0c;nginx反向代理配置 #tomcat 显然就是用户访问www.wolfdream.com(需要设置本地localhost&#xff0c;将www.wolfdream.com指向nginx所在IP)的时候(或将www.wolfdream.com直接写在nginx所在的IP地址)&#xff0c;将请求转到到后台的tomcat服务器&#xff0c;即127.…

深度强化学习的前景:帮助机器掌控复杂性

作者&#xff1a;数据实战派 来源&#xff1a;数据实战派深度强化学习&#xff0c;即机器通过测试其行为后果来学习的方法&#xff0c;是人工智能最有前途和影响力的领域之一。它将深度神经网络与强化学习结合在一起&#xff0c;可以通过训练实现多个步骤的目标。它是自动驾驶汽…

成绩转换(15)

#include<stdio.h> int main() {int n;char ch;while(scanf("%d",&n)!EOF){if(n>100||n<0) continue;if(n>90) chA;else if(n>80) chB;else if(n>70) chC;else if(n>60) chD;else chE;printf("%c\n",ch);} }转载于:https://ww…

pangolin最新版 v2.5.2.975

Pangolin是一款帮助渗透测试人员进行Sql注入测试的安全工具。 所谓的SQL注入测试就是通过利用目标网站的某个页面缺少对用户传递参数控制或者控制的不够好的情况下出现的漏洞&#xff0c;从而达到获取、修改、删除数据&#xff0c;甚至控制数据库服务器、Web服务器的目的的测试…

nginx 的proxy_cache才是王道

nginx 的proxy_cache才是性价比最高的缓存,我目前的配置是LiteSpeednginx,可以参考apachenginx将动态内容交给LiteSpeed或apache来处理,然后利用proxy_cache反向代理全部缓存在硬盘,变成静态内容,大家都知道nginx跑静态内容是有多厉害了吧,所以这样就可以小内存跑大PV.但是这样…

Android 占位符 %1$s %1$d

1、整型&#xff0c;比如“我今年23岁了”&#xff0c;这个23是整型的。在string.xml中可以这样写&#xff0c;<string name"old">我今年%1$d岁了</string> 在程序中&#xff0c;使用 [java] view plaincopy String sAgeFormat getResources().getStrin…

谁说技术男不适合养猫!90后程序员2天做出猫咪情绪识别软件

整理 | 王晓曼出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;9月1日&#xff0c;一则关于#程序员2天做出猫咪情绪识别软件#的话题登上微博热搜&#xff0c;参与阅读的人数达到了8218.1万&#xff0c;讨论次数1.3万&#xff0c;引发网友们的热议。高手在民间&#…

符合RESTful的接口规范

把api放在专属域名下&#xff0c;要带版本号 api的url中应该只有名词&#xff0c;和数据库的表或文档资源相对应&#xff1b;对资源&#xff08;collection&#xff09;的具体操作类型则由http方法动词表示 &#xff08;安全性&#xff1a;不改变资源状态&#xff0c;类似只读&…

Nginx proxy_cache 使用示例

原文出处&#xff1a;http://blog.chenlb.com/2010/04/nginx-proxy-cache.html 动态网站使用缓存是很有必要的。前段时间使用了 nginx proxy_stroe 来保存静态页面&#xff0c;以达到缓存的目的。当然 proxy stroe 用来做缓存是不够好的方案。 缓存这一块当然还有 squid 之类的…

Lync 小技巧-49-Lync 自动备份-批量管理-用户(免费视频)

自从2010年开始&#xff0c;自从Lync Server 2010开始&#xff0c;我都在研究Lync 自动备份和批量管理用户&#xff0c;当年都做成功&#xff0c;做标准过&#xff0e;不过都是图片&#xff0c;未写博客&#xff0c;为什么呢?有可能你有这样那样的假设&#xff0c;但是今天可以…

数学很差的人能当程序员吗?

【CSDN 编者按】作者在大学时代受《程序员》杂志的启发&#xff0c;从数学专业投身计算机编程&#xff0c;毕业后进入软件开发行业。过去9年&#xff0c;他去过大厂敲代码&#xff0c;也曾在创业公司带过团队&#xff0c;一直从事“下一代”软件技术的研发&#xff0c;对于网上…

Nginx 学习笔记(六)引入线程池 性能提升9倍

原文地址&#xff1a;https://www.cnblogs.com/shitoufengkuang/p/4910333.html 一、前言 1、Nignx版本&#xff1a;1.7.11 以上 2、NGINX采用了异步、事件驱动的方法来处理连接。这种处理方式无需&#xff08;像使用传统架构的服务器一样&#xff09;为每个请求创建额外的专用…

Nginx源代码分析 - 日志处理

我看Nginx源代码的时候&#xff0c;感觉整个系统都在传递log指针。log在nginx里是比较关键的。日志和内存分配是最基础的两个起点代码&#xff0c;最好是在自己写的程序框架中早点完善并实现。以免未来要用大量的精力调整。1. 日志的源代码位置日志的源代码在src/code/ngx_log.…

strom.yaml配置

2019独角兽企业重金招聘Python工程师标准>>> 配置storm.yaml storm发行版在conf/storm.yaml包含了一些配置信息。你可以在这里看到默认配置。storm.yaml里面的配置比default.xml的优先级要高&#xff0c; 下面是要运行storm集群所必须的配置: 1. storm.zookeeper.se…

用 Python 快速制作海报级地图

作者&#xff1a;费弗里 来源&#xff1a;Python大数据分析 1 简介 基于Python中诸如matplotlib等功能丰富、自由度极高的绘图库&#xff0c;我们可以完成各种极富艺术感的可视化作品&#xff0c;关于这一点我在系列文章在模仿中精进数据可视化中已经带大家学习过很多案例了。 …

关于VS2012如何安装Windows Phone Toolkit

最近也是碰到很多问题&#xff0c;在编程的时候。这个问题是我遇到的比较棘手的一个&#xff0c;问了一堆人都说得很是模糊&#xff0c;最后还是琢磨出来了&#xff0c;深感欣慰。写下来以防以后忘记了怎么操作的&#xff0c;也期望能帮助到遇到同样问题的你。 首先让我先说了几…

论Oracle 11g数据库备份与恢复策略

11G中有个新特性&#xff0c;当表无数据时&#xff0c;不分配segment&#xff0c;以节省空间解决方案&#xff1a;1、insert一行&#xff0c;再roolback就会产生segment了该方法是在空表中插入一行数据&#xff0c;再删除&#xff0c;就会产生segment。则在数据库导出时可以导出…

使Apache实现gzip压缩

众所周知&#xff0c;在HTTP1.1中支持gzip压缩&#xff0c;这样可以缩小页面的容量从而加快页面的显示速度。可以使用常用HTTP抓包工具来检测一下你的站点是否开始了gzip压缩。 Apache默认的http.conf配置文件中没有开启gzip压缩&#xff0c;apache1.3.x可以用mod_gzip进行优化…

脸书 AI 识别误将黑人标记为「灵长类动物」

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 最近&#xff0c;Facebook用户在观看一段以黑人为主角的视频时&#xff0c;会看到一个自动生成的提示&#xff0c;询问他们是否愿意“继续观看灵长类动物的视频”。 视频的内容其实是几个黑人和警察发…

Forefront for OCS2007之部署

1. 前提准备①OCS服务器②创建一个域账户&#xff0c;用于Forefront IM通告。帐户还将用于运行 ForefrontRTCProxy 服务用来截取来自 Office Communications Server SIP 通信进行扫描。此帐户必须满足以下要求&#xff1a;该帐户必须被为ForefrontRTCProxy服务授予 “ 运行为服…