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 变量命名规则详解
May 07 Javascript
JavaScript中的正则表达式简明总结
Apr 04 Javascript
jQuery给多个不同元素添加class样式的方法
Mar 26 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
浅谈react受控组件与非受控组件(小结)
Feb 09 Javascript
JavaScript 有用的代码片段和 trick
Feb 22 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 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开发工具之vs2005图解
2008/01/12 PHP
php 中文和编码判断代码
2010/05/16 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
一些mootools的学习资源
2010/02/07 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
chrome调试javascript详解
2015/10/21 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
python自动发送邮件脚本
2018/06/20 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python常用数据重复项处理方法
2019/11/22 Python
详解Python的三种拷贝方式
2020/02/11 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
学子宴答谢词
2014/01/25 职场文书
法律进社区实施方案
2014/03/21 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis