`
liudong19870227
  • 浏览: 31836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Backbone制作联系人管理之列表(1)

阅读更多

本系列将讲解使用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;
 

附件为源文件~

分享到:
评论

相关推荐

    Backbone制作联系人管理之过滤和路由(2)

    通过这种方式,用户可以使用浏览器的前进和后退按钮,或者直接在地址栏输入URL,来导航到不同的联系人列表。 在实际项目中,为了保持代码的整洁和可维护性,你可能会将过滤和路由功能封装到单独的模块或服务中。...

    BackBone介绍及使用

    1. **Model**:Backbone中的模型是应用的核心,负责存储和处理数据。它们与服务器上的数据源进行交互,通过`fetch`和`save`方法来获取和更新数据。模型还支持事件监听,当数据发生变化时,可以触发相应的事件。 2. ...

    用Backbone.js写的增删改查列表

    在"用Backbone.js写的增删改查列表"这个项目中,我们将深入探讨如何利用Backbone.js来创建一个基本的数据管理应用。 首先,Backbone.js的核心是Model,它是应用程序的数据模型,负责存储和管理数据。在这个增删改查...

    backbone.routemanager, 更好的backbone.js 项目路由管理.zip

    backbone.routemanager, 更好的backbone.js 项目路由管理 backbone.routemanager由 Tim Branyen @tbranyen 创建。向 Backbone.Router 提供缺少的特性。依赖于下划线,Backbone 和 jQuery 。 你可以使用定制配置完全...

    backbone整合require例子

    **压缩包文件名称列表:** "backbone" 这个文件名可能是项目的根目录或者包含了Backbone.js库的文件,也可能代表了整个示例项目。 **详细知识点:** 1. **Backbone.js** 的核心组件: - **Model**:用于存储和...

    Java 演示 backbone 基本用法

    1. **Backbone.Model**: 这是Backbone的核心组件之一,用于封装和管理应用的数据。Model负责存储数据,并提供了监听和处理数据变化的方法。开发者可以定义Model的属性和事件,当模型数据发生变化时,可以触发相应的...

    透过源码学前端 之 Backbone 一

    标题“透过源码学前端 之 Backbone 一”暗示我们将从源码的角度去理解Backbone.js的工作原理。通过阅读和分析源码,我们可以更深入地了解其内部机制,这将对提升我们的前端开发技能大有裨益。 首先,Backbone.js的...

    backbone_api_frame

    1. `models/` - 存放Backbone模型文件,每个模型对应后端的一个资源或数据对象。 2. `views/` - 包含Backbone视图文件,负责UI展示和用户交互。 3. `collections/` - 集合文件,用于管理一组相关的模型实例。 4. `...

    awesome-backbone, backbone.js的资源列表.zip

    awesome-backbone, backbone.js的资源列表 backbone.js backbone.js的资源列表常规backbone.jsGithub知识库注释源代码Backbone 插件插件Backbone 索引 - 发现新的Backbone 插件和资源Backbone

    backbone 资料

    这个框架的核心理念是帮助开发者维护数据和界面之间的同步,同时提供了一种组织代码的方式,使得大型应用的管理更为有序。 在Backbone中,Model是数据的容器,它封装了业务逻辑和数据状态。你可以将服务器端的数据...

    backbone框架

    1. **模型(Models)**:Backbone的模型是数据和业务逻辑的主要载体,它们通常与服务器上的数据资源对应。模型负责处理数据验证、同步以及事件触发。你可以将模型看作是JSON对象的封装,提供了添加、删除、修改属性...

    Backbone 文档

    Backbone.js 是一款轻量级的JavaScript库,用于构建客户端的Web应用,它提供了一种组织和管理前端数据模型、视图以及与服务器交互的结构。这个文档将带你走进Backbone的世界,通过一个开发入门的例子,帮助你了解...

    backbone官方Todo示例_修正

    "backbone官方Todo示例_修正"是一个很好的学习资源,它演示了如何使用Backbone.js来构建一个简单的待办事项管理应用。 1. **模型(Model)**:在Backbone中,模型是应用程序数据的核心,通常对应于服务器上的JSON对象...

    Backbone.js(1.1.2) API中文文档.zip Backbone.js离线文档

    3. **集合(Collections)**:集合是模型的有序列表,它们继承自Backbone.Events,因此可以触发和监听事件。集合有自己的URL,可以进行同步操作,如`fetch`和`create`。集合中的模型可以通过比较ID来保持唯一性。 4...

    BACKBONE.JS应用程序开发

    , 《backbone.js应用程序开发》先从了解mvc、spa和backbone的基本知识开始,然后着手构建示例应用程序——一个简单的todo列表应用程序、restful风格的图书应用程序、以及使用backbone和requirejs的模块化应用程序。...

    Backbone.Marionette.pdf

    针对数据延迟问题,书中提出了延迟联系人获取的策略,并使用jQuery Deferreds来管理异步操作,确保了数据处理的顺畅。 ##### 结语 《Backbone.Marionette.js: A Gentle Introduction》不仅是一本入门书籍,更是...

    Backbone标准例子——通讯录

    1. **Backbone.js基础**:Backbone.js的核心是模型-视图-控制器模式,它提供了数据模型、视图组件、集合、路由器等核心模块,帮助开发者组织和管理代码。 2. **模型(Model)**:在通讯录应用中,每个联系人信息...

Global site tag (gtag.js) - Google Analytics