在上一篇博客中我们说到了backbone.js在开发中的框架搭建和需要注意的一些东西。现在就接着说说怎么去开发一个具体的功能。就做个资讯栏目吧,首先是列表页面(这里以android为准,web也是相通的咯)。
1.首先不管做什么我们都需要有数据,先去服务器拿数据。也就是开始我们的model层。在model层里面我建议最好不要做其他的操作,只要操作数据就可以了。记住model就是数据,能不做别的就不要去做。好 现在看代码:
PhoneGap.exec(op.success, op.error, 'GetData', op.action, [op.params]); 这个是phonegap里面与android 的 native端交互的传递数据的。我把它提取出来了,写成了一个公用的getData 方法。其实它是调用了唯一一个可以写入数据的对话框在里面写入值传递到native端的。写好方法后就是取数据。
我们首先定义一个集合 listConllection 继承 Backbone.Collection 然后调用getData()方法params:{url} 把获取数据的url通过它传过去。这样就可以获取到数据了,然后我们return new ListCollection() 注意这里为什么不返回集合而只是他的一个实例,因为这个是数据层我们需要的是唯一的数据,如果是直接返回,那么别人调用了后改了,我们这边也会改变。而实例就不会了,所以我们需要返回的是单实例,当然如果数据模型相同我们也可以直接返回,这样就可以用一个model处理很多相类似的数据了。
2.model层很简单,数据就这样取好了,接下来就是view层。在view层我们
var list = require('app/models/list'); 引入这个model,那么数据就过来了,是不是很简单呢。在view 层我们要继承Backbone.View的方法。然后初始化model. backbone里面有显示页面的方法render()我们只要调用它会自动隐藏上一个页面显示当前页的。
render:fucntion(){
var data = {
data:this.list.models,
};
$("div").html(_.template(tmpl,data));
}
上面就是调用render把model里面的值给data然后tmpl是你现在要显示的页面,它会调用template自动给你把数据和页面绑定。然后在tmpl里面加入html就可以显示出列表了。
3.基本的功能已经实现,可是在开发过程中还是会有很多的问题,有时候可能异步加载会让我们很多的东西都无法去手动控制。这个时候必须去查看源码,弄清来龙去脉。
4.现在讲讲backbone 里面的事件处理:
this.list.bind('add reset', this.render, this);
这里是在改model运行的时候绑定的reset事件,可以理解为刷新。除此之外还有change、add这些都是已经写好的,每次添加数据或者数据改变都会去触发。其次在view里面我们要加载自己写的事件就需要写一个
events:fucntion(){
"click #div":"method()"
}
click表示的是时间类型,div表示控件,method表示触发了后的事件调用的方法。这样我们就可以认为去创建事件了。
5.model 和 view之间会频繁的交互这个参数的传递也是一个让人头疼的问题
fetch()是可以传递参数的,其次在model里面定义一个变量,引用model的时候就可以使用该变量,其次在model定义的model里面可以加变量,这个变量是会对应到页面的每个数据对象上。其次页面可以通过post提交数据到model上。
分享到:
相关推荐
Backbone.js是一款轻量级的JavaScript库,专为构建可维护性和结构化的Web应用而设计。它主要关注数据模型的管理、视图的渲染以及URL路由,为前端开发提供了强大的框架支持。本资源是关于"Backbone.js实战"的电子书,...
Backbone.js是一款轻量级的JavaScript库,专为构建...总的来说,通过学习《Backbone.js实战》的源码,开发者不仅可以掌握Backbone.js的基本用法,还能了解到如何在实际项目中应用和优化Backbone.js,提升前端开发技能。
Backbone.js 是一款轻量级的 JavaScript 框架,它为 Web 开发提供了 MVC(Model-View-Controller)架构的基础组件。该框架的目标是简化客户端应用的开发流程,通过提供 Models、Collections 和 Views 的抽象层次结构...
《Full Stack JavaScript:学习Backbone.js, Node.js和MongoDB(第二版)》这本书,由Azat Mardan编写,正是一本全面介绍如何使用这些前沿技术进行敏捷开发的实践指南。 本书主要内容涵盖了使用Node.js、MongoDB、...
Backbone 为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESTful ...
**Backbone.js** 是一款轻量级的JavaScript库,它提供了模型(Model)、集合(Collection)、视图(View)和路由器(Router)等概念来帮助开发者构建结构化的Web应用程序。通过结合**MVC**(Model-View-Controller)...
Backbone.js是一款轻量级的JavaScript库,专为构建可维护和组织良好的前端应用程序而设计。这个项目,"Backbone.js-Russian",是Backbone.js官方文档的俄语翻译版本,旨在为说俄语的开发者提供更易于理解的资源,...
Backbone.js是一个轻量级的JavaScript库,它为构建复杂的Web应用程序提供了一种结构化的方法。该框架的核心理念是帮助开发者在前端实现MVC(模型-视图-控制器)模式,以提升代码的组织性和可维护性。 ### Backbone....
Backbone.js 是一款轻量级的 JavaScript 框架,专为构建单页应用程序(Single-Page Applications, 简称 SPA)而设计。在这个名为 "backbone-demo-spa" 的项目中,开发者提供了一个使用 Backbone.js 实现的示例SPA,...
Backbone.js是一个流行的JavaScript框架,它遵循MVC(Model-View-Controller)设计模式,允许开发者更容易地组织和维护复杂的Web应用程序。MVC模式将应用划分为三个主要部分:Model代表数据和业务逻辑,View负责数据...
【标题】"backbone-calendar:骨干练习-日历" 是一...这个项目对于熟悉JavaScript和想要学习Backbone.js的开发者来说,是一个很好的实战练习,通过实际操作,能够加深对Backbone.js工作原理的理解,并提升前端开发技能。
总结,"backbone-todo"项目是一个很好的学习Backbone.js的实战案例,通过这个项目,你可以理解MVC模式在前端开发中的应用,掌握Backbone.js的核心组件及其工作原理,从而提升你的前端开发技能。
node-backbone-skeleton 主要供我个人使用,而不是经过实战测试的生产就绪框架。 但是,我发现它对一些项目很有用,所以也许其他开发人员会发现它是一个方便的起点。 入门 gem install compass npm install glob ...
Backbone.js是一个轻量级的JavaScript库,专为构建可维护和模块化的Web应用程序而设计。它提供了一组数据模型(Model)、视图(View)和路由器(Router)的结构,帮助开发者组织代码并实现MVC(Model-View-...
在IT领域,Backbone.js是一个非常重要的JavaScript库,它为构建复杂的Web应用程序提供了一种结构化的方法。这个名为"6.4-backbone-exercises"的压缩包文件显然是一系列关于Backbone.js的练习,旨在帮助学习者深入...
Backbone.js 是一个轻量级的JavaScript库,它为Web应用程序提供了模型(Model)、视图(View)、集合(Collection)和路由器(Router)等核心概念,帮助开发者实现MVC(Model-View-Controller)架构。本文将深入探讨在...
Addy Osmani 是一位知名的Web开发者,他的书籍深入浅出地讲解了如何构建复杂的前端应用,而这个toDoApp正是他教程中的一个实战案例,旨在教授如何使用Backbone.js框架来构建可扩展和可维护的JavaScript应用。...
### Python全栈开发与MEAN框架实战解析 #### 一、全栈开发概念与特点 全栈开发是指软件工程师能够熟练掌握并运用整个软件开发流程中的各项技术,包括前端、后端、数据库以及运维等多个方面。随着互联网项目的...
该文档内容围绕淘宝北研团队对彩票业务web无线开发的实战项目经验总结,展示了彩票H5订单系统从开始移动开发到不断迭代升级的发展历程,其中涉及到多个关键技术点、开发框架和优化策略。 ### 1. 移动开发的起步 ...