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 YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
在Node.js中实现文件复制的方法和实例
Jun 05 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
canvas实现探照灯效果
Feb 07 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
详解js创建对象的几种方法及继承
Apr 12 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
jQuery实现弹出层效果
Dec 10 jQuery
小程序实现筛子抽奖
May 26 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
理解javascript模块化
2016/03/28 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
移动端js图片查看器
2016/11/17 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
python实现关键词提取的示例讲解
2018/04/28 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
黄河象教学反思
2014/02/10 职场文书
家长对孩子的评语
2014/04/18 职场文书
分公司经理任命书
2014/06/05 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
企业员工辞职信范文
2015/05/12 职场文书
杨善洲观后感
2015/06/04 职场文书
中学教师读书笔记
2015/07/01 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
合作合同协议书
2016/03/21 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js