本系列将讲解使用backbone制作一个联系人管理器,共分为四个部分:
1.制作列表
2.增加类型过滤、和路由功能
3.增加添加、修改和删除功能
4.与服务器的数据同步
第一部分:制作列表
完成这个功能需要:
1.我们先采用假数据,即定义一个联系人数组。
var contacts = [
{id: '1', name: '张三01', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '同事'},
{id: '2', name: '张三02', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '同事'},
{id: '3', name: '张三03', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '同事'},
{id: '4', name: '张三04', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '朋友'},
{id: '5', name: '张三05', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '朋友'},
{id: '6', name: '张三06', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '朋友'},
{id: '7', name: '张三07', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '家人'},
{id: '8', name: '张三08', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '家人'},
{id: '9', name: '张三09', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '家人'},
{id: '10', name: '张三10', address: '北京市朝阳区', email: 'zhangsan@163.com', tel: '13211111111', type: '家人'}
];
2.定义联系人模型
//定义Contact Model
var Contact = Backbone.Model.extend({
defaults: {
photo: 'img/placeholder.png'
}
});
3.定义存放联系人的集合
//定义Contact Collection
var ContactList = Backbone.Collection.extend({
model: Contact
});
4.定义每个联系人名片的视图
//定义Contact View
var ContactView = Backbone.View.extend({
tagName: 'artical',
className: 'contact-container',
template: $('#contactViewTmpl').html(),
render: function(){
var tmpl = _.template(this.template);
$(this.el).html(tmpl(this.model.toJSON()));
//为了链式调用
return this;
}
});
5.定义整个视图(程序入口)
//定义程序视图
var AppView = Backbone.View.extend({
el: $('#contacts'),
initialize: function(){
//程序入口,获得数据,然后渲染页面
this.collection = new ContactList(contacts);
this.render();
},
render: function(){
var that = this;
_.each(this.collection.models, function(item){
//动态传入model数据
var contactView = new ContactView({model: item});
that.$el.append(contactView.render().el);
},this);
}
});
6.调用
var app = new AppView;
附件为源文件~
分享到:
相关推荐
通过这种方式,用户可以使用浏览器的前进和后退按钮,或者直接在地址栏输入URL,来导航到不同的联系人列表。 在实际项目中,为了保持代码的整洁和可维护性,你可能会将过滤和路由功能封装到单独的模块或服务中。...
1. **Model**:Backbone中的模型是应用的核心,负责存储和处理数据。它们与服务器上的数据源进行交互,通过`fetch`和`save`方法来获取和更新数据。模型还支持事件监听,当数据发生变化时,可以触发相应的事件。 2. ...
在"用Backbone.js写的增删改查列表"这个项目中,我们将深入探讨如何利用Backbone.js来创建一个基本的数据管理应用。 首先,Backbone.js的核心是Model,它是应用程序的数据模型,负责存储和管理数据。在这个增删改查...
backbone.routemanager, 更好的backbone.js 项目路由管理 backbone.routemanager由 Tim Branyen @tbranyen 创建。向 Backbone.Router 提供缺少的特性。依赖于下划线,Backbone 和 jQuery 。 你可以使用定制配置完全...
**压缩包文件名称列表:** "backbone" 这个文件名可能是项目的根目录或者包含了Backbone.js库的文件,也可能代表了整个示例项目。 **详细知识点:** 1. **Backbone.js** 的核心组件: - **Model**:用于存储和...
1. **Backbone.Model**: 这是Backbone的核心组件之一,用于封装和管理应用的数据。Model负责存储数据,并提供了监听和处理数据变化的方法。开发者可以定义Model的属性和事件,当模型数据发生变化时,可以触发相应的...
标题“透过源码学前端 之 Backbone 一”暗示我们将从源码的角度去理解Backbone.js的工作原理。通过阅读和分析源码,我们可以更深入地了解其内部机制,这将对提升我们的前端开发技能大有裨益。 首先,Backbone.js的...
1. `models/` - 存放Backbone模型文件,每个模型对应后端的一个资源或数据对象。 2. `views/` - 包含Backbone视图文件,负责UI展示和用户交互。 3. `collections/` - 集合文件,用于管理一组相关的模型实例。 4. `...
awesome-backbone, backbone.js的资源列表 backbone.js backbone.js的资源列表常规backbone.jsGithub知识库注释源代码Backbone 插件插件Backbone 索引 - 发现新的Backbone 插件和资源Backbone
这个框架的核心理念是帮助开发者维护数据和界面之间的同步,同时提供了一种组织代码的方式,使得大型应用的管理更为有序。 在Backbone中,Model是数据的容器,它封装了业务逻辑和数据状态。你可以将服务器端的数据...
Backbone.js 是一款轻量级的JavaScript库,主要用于构建客户端的Web应用程序,它引入了Model-View-Controller(MVC)的设计模式,帮助开发者更好地组织和管理前端代码。这款库由Jeremy Ashkenas开发,自2010年发布...
1. **模型(Models)**:Backbone的模型是数据和业务逻辑的主要载体,它们通常与服务器上的数据资源对应。模型负责处理数据验证、同步以及事件触发。你可以将模型看作是JSON对象的封装,提供了添加、删除、修改属性...
Backbone.js 是一款轻量级的JavaScript库,用于构建客户端的Web应用,它提供了一种组织和管理前端数据模型、视图以及与服务器交互的结构。这个文档将带你走进Backbone的世界,通过一个开发入门的例子,帮助你了解...
"backbone官方Todo示例_修正"是一个很好的学习资源,它演示了如何使用Backbone.js来构建一个简单的待办事项管理应用。 1. **模型(Model)**:在Backbone中,模型是应用程序数据的核心,通常对应于服务器上的JSON对象...
3. **集合(Collections)**:集合是模型的有序列表,它们继承自Backbone.Events,因此可以触发和监听事件。集合有自己的URL,可以进行同步操作,如`fetch`和`create`。集合中的模型可以通过比较ID来保持唯一性。 4...
, 《backbone.js应用程序开发》先从了解mvc、spa和backbone的基本知识开始,然后着手构建示例应用程序——一个简单的todo列表应用程序、restful风格的图书应用程序、以及使用backbone和requirejs的模块化应用程序。...
针对数据延迟问题,书中提出了延迟联系人获取的策略,并使用jQuery Deferreds来管理异步操作,确保了数据处理的顺畅。 ##### 结语 《Backbone.Marionette.js: A Gentle Introduction》不仅是一本入门书籍,更是...
1. **Backbone.js基础**:Backbone.js的核心是模型-视图-控制器模式,它提供了数据模型、视图组件、集合、路由器等核心模块,帮助开发者组织和管理代码。 2. **模型(Model)**:在通讯录应用中,每个联系人信息...