Backbone.js的Hello World程序实例


Posted in Javascript onJune 19, 2015

新建一个api.php文件,内容:
 

 header('Content-Type: application/json; charset=utf-8');

die(json_encode(array('name'=>'tom')));

 

新建一个index.html文件。(backbone基于jquery、underscore,我们使用Mustache来做模板解析,当然用其他的haml、jade,或者underscore里面的模板也都是可以)

内容:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

 <HEAD>

  <TITLE> New Document </TITLE>

<script type="text/javascript" src="./jquery.min.js"></script>

<script type="text/javascript" src="./underscore.min.js"></script>

<script type="text/javascript" src="./backbone.min.js"></script>

<script type="text/javascript" src="./mustache.min.js"></script>

<script type="text/javascript" src="./custom.js"></script>

 </HEAD>

 <BODY>

  <p><script id="hello-container-template" type="text/template"></p><p><div>{{name}} says: {{message}} </div></p><p></script></p>

 </BODY>

</HTML>

新建一个custom.js文件,内容:

// 这是一个管理着 视图/控制/模型 的全局类

var App = {

    Models: {},

Views: {},

Controllers: {},

Collections: {},

initialize: function() {

new App.Controllers.Routes();

        Backbone.history.start() // 要驱动所有的Backbone程序,Backbone.history.start()是必须的。

    }

};

App.Models.Hello = Backbone.Model.extend({

    url: function() {

        return '/api.php'; // 获得数据的后台地址。

    },

    initialize: function() {

     this.set({'message':'hello world'}); // 前端定义一个message字段,name字段由后端提供。

    }

});

App.Views.Hello = Backbone.View.extend({

el: $("body"),

template: $("#<span style="font-family: monospace; white-space: pre; ">hello-container-template</span>").html(),

initialize: function(options){

this.options = options;

this.bind('change', this.render);

this.model = this.options.model;

},

render: function(){ // render方法,目标只有两个:填充this.el,返回this以便链式操作。

$(this.el).html(Mustache.to_html($(this.el).template,this.model.toJSON()) );

return this

}

});

App.Controllers.Routes = Backbone.Controller.extend({

routes: {

"!/hello" : "hello",//使用#!/hello驱动路由

},

hello : function() {

//新建一个模型,模型向后端请求更新内容成功后根据模型渲染新页面

var helloModel = new App.Models.Hello;

helloModel.fetch({

success: function(model){

var helloView = new App.Views.Hello({model: model});

helloView.trigger('change');

}

})

}});

App.initialize();
Javascript 相关文章推荐
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
Jan 23 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
Sep 08 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 #Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 #Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 #Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 #Javascript
详细解读AngularJS中的表单验证编程
Jun 19 #Javascript
JavaScript中模拟实现jsonp
Jun 19 #Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 #Javascript
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
详细介绍Python中的偏函数
2015/04/27 Python
python删除列表内容
2015/08/04 Python
Python字符编码判断方法分析
2016/07/01 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
大学生求职简历的自我评价
2013/10/14 职场文书
招聘专员岗位职责
2014/03/07 职场文书
网络营销计划
2015/01/17 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
教你利用python实现企业微信发送消息
2021/05/23 Python
python 实现体质指数BMI计算
2021/05/26 Python