读书人

《BackboneJS框架的技能及模式》(4)完

发布时间: 2013-10-06 18:25:14 作者: rapoo

《BackboneJS框架的技巧及模式》(4)完结篇

《BackboneJS框架的技巧及模式》(4)完结篇


本文紧接第二部分:《BackboneJS框架的技巧及模式(3)》

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

八、PUT需要一个ID属性

这一条也经常会对那些Backbone.js新手造成困扰。要想在调用.save()的时候让模型发送一个HTTP PUT请求,你的模型需要有一个ID属性集。记得HTTP PUT谓词是设计用做更新的吧,所以发送一PUT请求,你的模型需要有一个ID。在理想情况,你的所有模型都有一名为ID的完美ID属性,但是你从端点接收到的JSON数据或许并不总是有完美命名的ID。

因此,如果你需要更新一个模型,在保存前确保模型上带有ID。Backbone.js从0.5版开始允许使用idAttribute来修改模型ID属性的名称,如果端点返回的不是名为id的ID属性名时。

如果使用的Backbone.js版本低于0.5,建议你修改模型或集合的parse函数,以便将期望的ID属性映射到属性ID。这里有一个快速上手的例子,说明了应怎样修改parse函数来做到这一点。我们假设你有一个cars的集合,它的ID属性名是carID。

var Thing = Backbone.View.extend(/** @lends Thing.prototype */{    /** @class Thing     * @author Phillip Whisenhunt     * @augments Backbone.View     * @contructs Thing object */    initialize() {},    /** Gets data by ID from the thing. If the thing doesn't have data based on the ID, an empty string is returned.     * @param {String} id The id of get data for.     * @return {String} The data. */    getDataById: function(id) {}});

如果你使用上面的方法对Backbone类添加文档注释,那么你可以生成优美的文档,文档包含了所有的类和函数及参数。确保初始化函数应作为第一个声明的函数,它可以帮助我们生成JSDoc文档。如果你想看使用JSDoc的项目例子,这里有:
https://github.com/homeaway/calendar-widget

十五、测试驱动的开发实践

我认为如果你使用Backbone.js开发项目,那么你应遵循测试驱动开发TDD。我第一次用Jasmine.js创建模型和集合时遵循TDD进行单元测试,但失败了。一旦写下单元测试并且失败,我会对整个模型和集合进行重写。

通过这一点,我的所有Jasmine测试都通过了,而且我有信心我的模型及集合会和我期望的一样工作。自从我遵循TDD,我的视图层非常容易编写而且非常简单。当你开始用TDD时,你的开发速度当然会很慢;但是一但你的脑海里一直想着TDD,你的编程效率和质量会显著提高。




读书人网 >JavaScript

热点推荐