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 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
Feb 16 Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 Javascript
php+js实现倒计时功能
Jun 02 Javascript
bootstrap导航、选项卡实现代码
Dec 28 Javascript
angularjs中回车键触发某一事件的方法
Apr 24 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
微信小程序实现时间戳格式转换
Jul 20 Javascript
JS实现无限轮播无倒退效果
Sep 21 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
转PHP手册及PHP编程标准
2006/12/17 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
phpinfo的知识点总结
2019/10/10 PHP
Using the TextRange Object
2006/10/14 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
师德师风承诺书
2014/05/23 职场文书
新学期标语
2014/06/30 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
社区务虚会发言材料
2014/10/20 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书