码迷,mamicode.com
首页 > Web开发 > 详细

用Backbone.js创建一个联系人管理系统(五)

时间:2015-12-17 12:39:45      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

原文: Build a Contacts Manager Using Backbone.js: Part 5

这是这系列教程最后一部分了. 之前所有的增删改都在前端完成. 这部分我们要把Contact的数据存储到数据库里.

 开始准备

在这里我们需要一个Web服务器,还有一个数据库. 可以是SQLServer.我们需要在

数据库中创建一个表来存储Concat. 表还要有一个主键ID,最好这个ID是unique和

自增长类型的. 虽然现在我们的Concat model里没有这个属性但是要把它存储到数

据库里ID还是有必要的.

Backbone的sync()

sync是Backbone.js提供给我们和服务器沟通的模块. 这是我们唯一还没用到的重要模块.

理解它后我们就可以完整的了解Backbone.js的整个框架.

调用sync()方法可以向服务器发送一个请求. 假设这个方法是通过调用JQuery或者Zepto来执行的请求.

又假设一个RESTful接口在后台使用POST,PUT,GET,DELETE,HTTP等方法.就像我们看到的,Backbone

能够用在headers中加入预处理动作的方法来配置GET,POST方法的回调函数(我觉得应该是call back他写错了).

除了直接调用sync(),models和collections也有方法可以用来和数据库通信. models有destory(),fetch(),

parse()和save()方法, collection有fetch()和parse()方法.不管是models还是collections的destroy(),fetch()

sync()方法性能都不如sync().parse()方法在服务器返回数据后自动调用. 默认不做任何操作只是返回数据库

响应,但是你重写它来添加你希望在服务器响应前做的操作.

页面载入时的操作

让model数据显示到页面中的方法依赖后台技术.Backbone官方文档中collection的fetch()方法提到,这个方法不

能在页面初始化的时候从服务器请求数据.这部分在精华问答区有提到,一个页面在所有必需的模块没有完全载入前

应该避免初始化AJAX请求.当我们还不清楚一件事的时候听从别人的建议是比较好的主意.这会让我们的应用程序更

加稳定.让model数据显示到页面中的方法依赖后台技术.我们在这个例子里要使用.net技术. 所以需要创建一个<script>

标签来动态加载需要的js模块到页面里.做完这些后我们要开始把原来的index.html改成index.aspx.  当然我也也

需要index.aspx.cs存放后台代码.但是这会产生一个问题.在ASPX页面中使用Underscore微模版.我们可以把

Underscore文档中的Mustache-style例子直接拿来用.现在的问题是Underscore的模版使用<%=作为指定的占位符

来代替实际数据.这和ASPX页面.net代码使用的一样.Underscore的模版我们在ASPX页面里运行会报出服务器错误.

很幸运有几种办法能解决这个问题,其中最简单的是在模版中修改使用占位符的语法.

Underscore提供的templateSettings这个属性就是为了解决这样的问题的.他能够很容易的用指定的正则表达式来替

换成我们希望的符号.实际上我们可以直接拿‘Mustache-style这个例子来用,在app.js文件开始(在闭包内)我们只要加入

以下代码:

_.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g
};

所有这些支持一个正则表达式方法interpolate, 它允许我们使用{{property}}这个语法还替换<%= property%>

为此我们必须把所有原来的模版的标签替换成新的语法.尽管这和我们原来用的模版变化比很大, 至少我们现在可以用

Underscore了.我们对于Javascript使用<%的地方可以使用用<%-来转换数据.如果我们准备使用这些在我们的模版

里来替换interpolate属性. 我们应该也要配置Underscore里的evaluate和escape.属性.

准备Model数据

我们现在要考虑在页面初始化渲染的时候怎么样把model数据从数据库中如何取到我们的页面中来.我们能很容易的在

ASPX的类文件中加入一个简单的方法. 从数据库中读取记.创建一个对象列表. 每个对象能够表示一个联系人.我们接下

来把数据转化为Javascript数据类型并且插入到页面中.

 

 


 

 

用Backbone.js创建一个联系人管理系统(五)

标签:

原文地址:http://www.cnblogs.com/dangkei/p/5053613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!