`
923723914
  • 浏览: 635222 次
文章分类
社区版块
存档分类
最新评论

Backbone笔记之四(修正与补充)

 
阅读更多

修正

感谢朋友令狐虫的指出,《Backbone笔记之一(View) 》的第一个例子里原来漏掉了 initialize 部分,导致view并不能正常显示(后面的例子里都有),可能是复制代码时搞错了。

因为除了在initialize里调用render方法显示以外,还有一种方法是不需要initialize,而是在new出view对象以后调用render方法。

目前原文已更新修正。

补充

也是令狐虫提出的问题:如何在服务端过滤Collection的结果?

如果只是说按特定的条件在浏览器端过滤Collection是很简单的,Collection本身就有这个功能。

以《Backbone笔记之二(Model/Collection) 》中的例子来说,就是这样:

var tl = new TaskList();
tl.fetch();
//  全部显示是这样:
tl.each(render_item); // render_item 为渲染显示一条记录的函数
//  过滤部分再显示则是这样(因为where的返回值不是collection,而是array,所以要改用underscore的each):
_.each(tl.where({state:"working"}), render_item);
//  除了where方法以外,还可以用underscore的filter方法,详见underscore的文档

但是如果全部记录集很大,而过滤后的结果很小的话,这样做就很浪费。因为这是把全部的结果集都下载到浏览器,再过滤出所需的少量数据,一则浪费服务端资源,二则浪费网络资源,最后还浪费浏览器资源,完全没有必要。

这就是令狐提出的那问题了,如何在服务端过滤?

服务端过滤当然也有办法,其实也不太麻烦,就是修改 TaskList 这个Collection类里的url属性,把它改成一个函数:

// ...
    url: function() {
        return "/task?filter_state=" + this.filter_state;
    },
// ...

这样只要修改filter_state就可以修改过滤条件,具体的过滤实现就需要在服务端根据这个参数作处理了。

分享到:
评论

相关推荐

    backbone官方Todo示例_修正

    backbone官方Todo示例内含自己详细注释,建议运行之后打开浏览器调试同步学习。

    developing backbone js applications

    Learn how Backbone.js brings MVC benefits to the client-side Write code that can be easily read, structured, and extended Work with the Backbone.Marionette and Thorax extension frameworks Solve ...

    backbone 资料

    backbone 资料

    BACKBONE.JS应用程序开发

    backbone.js提供了一套web开发的框架,为复杂javascript应用程序提供一个mvc结构。, 《backbone.js应用程序开发》详细介绍了如何使用backbone.js完成web应用开发。全书从了解mvc、spa和backbone.js的基本知识开始,...

    Backbone.js应用程序开发

    backbone.js提供了一套web开发的框架,为复杂javascript应用程序提供一个mvc结构。, 《backbone.js应用程序开发》详细介绍了如何使用backbone.js完成web应用开发。全书从了解mvc、spa和backbone.js的基本知识开始,...

    backbone-boilerplate, 一组用于构建 backbone.js 应用程序的最佳实践和实用工具.zip

    backbone-boilerplate, 一组用于构建 backbone.js 应用程序的最佳实践和实用工具 Backbone 模板这个样板是许多研究和挫折的产物。 现有的boilerplates修改 Backbone 核心,没有构建过程,或者者是非常规范的,这样的...

    backbone.js 1.1.2

    backbone.js 1.1.2

    Java 演示 backbone 基本用法

    Java 演示 backbone 基本用法 View Model Collection

    backbone marionette js

    Learn how Backbone.js brings MVC benefits to the client-side Write code that can be easily read, structured, and extended Work with the Backbone.Marionette and Thorax extension frameworks Solve ...

    backbone官方Todo示例

    backbone官方Todo示例内含自己详细注释,建议运行之后打开浏览器调试同步学习。

    react-backbone, Backbone 感知mixin用于响应和更多.zip

    react-backbone, Backbone 感知mixin用于响应和更多 反应中枢为 Backbone 提供对你的的响应,以响应你的组件,。将 backbone/backbone 。集合感知awareness你的反应组件mixin用于更新模型更改事件,请注意xhr活动和...

    backbone中文api

    backbone中文api

    backbone文档

    Backbone.js初学者教程(1) 作者: 阿伦 日期: 2012 年 3 月 15 日 分类: Javascript标签: Backbone.js, Javascript, Tutorial, 前端开发, 结构化 最近在google trends上看了backbone.js近些年的搜索指数:

    backbone实例demo

    backbone+seajs实战

    backbone-boilerplate, 用于构建 Backbone 应用程序的工作流.zip

    backbone-boilerplate, 用于构建 Backbone 应用程序的工作流 Backbone 模板这个样板是许多研究和挫折的产物。 现有boilerplates自由修改 Backbone 核心,缺少构建过程,并且非常规范;Backbone 样板文件的变更。...

    backbone-localstorage.js

    backbone的扩展库backbone-localstorage.js

    backbone 实例

    backbone的API 及实例

    backbone_api_frame

    backbone+extjs 开发的API框架

    backbone整合require例子

    backbone官网的todos demo,用require进行模块划分,个人感觉就是把前端写的跟后端代码一样,每个文件都注明要引用的模块文件,类似java的import。

Global site tag (gtag.js) - Google Analytics