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 相关文章推荐
JS中style属性
Oct 11 Javascript
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
javascript获取web应用根目录的方法
Feb 12 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
10分钟掌握XML、JSON及其解析
Dec 06 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
JavaScript如何优化逻辑判断代码详解
Jun 08 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
使用node.js搭建服务器
2017/05/20 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python实现的桶排序算法示例
2017/11/29 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
python协程之动态添加任务的方法
2019/02/19 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
最新远光软件笔试题面试题内容
2013/11/08 面试题
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
会议新闻稿
2015/07/17 职场文书
病假条格式范文
2015/08/17 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL