BackboneJS

分类下相关文章

Backbone 的 View 销毁

我的思路 当监听到 model 被销毁时,触发 view 的 remove 操作。 因为当 model 不存在时,对应的 view 也就没有了存在的意义。 但是怎么判断 model 不存在了呢? 简单粗暴的方式 When using $(el).empty() it removes all the child elements in the selected element AND removes ALL the events (and data) that are bound to any (child) elements inside of the selected element (e ...

阅读全文...

前端路径管理 - BackboneJS Router

什么是前端路径 /stock#enter /stock#per/20150330/600637 其中 #enter, #per/20150330/600637 部分便是前端路径 何时使用前端路径 或者说前端路径存在的意义是啥? 前端路径无非是触发一段代码的执行,用 onClick 点击触发也可以啊。 但是点击触发的状态,你没法分享给其他人、也没法添加书签、或是从其他功能调整到该单页应用的某个重要子功能; 使用前端路径则可以。 BackboneJS Router 是如何配置的 var StockSelector = Backbone.Router.extend({ routes: { ...

阅读全文...

Backbonejs RESTful 实践

最近接手的工作项目都是些列表展示,增删改查类的前端。所以先抽空总结一下, 磨刀不费砍柴功。 使用 bower 简化 backbonejs 项目初始化 使用 backbonejs 这类框架比较恶心的一点是,每次项目初始化都要手动下载一遍各种依赖。 以 backbonejs 为例,其依赖 underscore jquery (Backbone.View 中的 DOM 操作) 平常的做法是,手动下载 backbonejs, underscore, jquery 依次放到 js/lib 目录下。 完成后,5分钟就过去了。特别打击新建项目的积极性。于是上帝创造了 Bower sudo npm ins ...

阅读全文...

BackboneJS 从 API 返回中解析结果

有时候我们的返回是特定的 json 结构,而不是完全遵守 RESTful 的结构,例如 { "code": 0, "msg": "OK", "data": { "id": 1, "name": "zhongwei" } } 那么如何从这种返回格式中,解析出 model 对应的属性值呢? 使用 parse (function() { var Member = Backbone.Model.extend({ def ...

阅读全文...

Backbone 实战总结

最近2个周做域名转入前端,为了兼容旧的代码,使用了 Backbone。一路下来跌跌撞撞,踩坑无数。 这段时间,日日加班,做梦都是前端 render 逻辑,快要疯掉。但也收获良多,基本上写前端已经心中有底了。 Backbone 到处是大坑 纯牢骚。但是用这种原始框架最锻炼程序员的 js 基础。 代码量巨大 总感觉自己用 Backbone 写了一个周的功能,用 Angular 两天就能搞定。 代码行数不是问题,代码量行数多,但逻辑清晰是可以接受的。但是,感觉 Backbone 代码量又大,逻辑又复杂。 代码量的问题,可以用自动化工具解决。例如 VIM 插件,例如初始化 Model,Collecti ...

阅读全文...

Circular Dependency in BackboneJS

Uncaught Error: Module name "router" has not been loaded yet for context: _ 今天写一个简单新建页面时,遇到上面这个错误。报错来自于 views/new_item.js 的 var Router = require('router'); 确认了一下路径是对的,router.js 也加载成功了,依然报错。对比 router.js 的代码 define(function(require) { var Backbone = require('backbone'); var NewIte ...

阅读全文...

backbonejs

缺乏架构气质的类库 如果想把 backbonejs 做为前端框架,还是算了,如果把 AngularJS 比作冲锋枪,那么 backbonejs 顶多是根树枝, 杀敌效率太低。 只有配合基于 backbonejs 的框架(例如,Marionette),才能提高生产力。 Models 哪些操作需要置于 Models 下呢? 数据的增、删、改、查 类型转换 权限控制 数据校验, 例如邮箱格式校验 生成展示所需的数据,例如,根据姓、名,生成全名 Backbone.js Model 内置的一些核心函数 extend 继承 Backbone.Model,并在其上进行扩展 set 设置属性的同时,会触 ...

阅读全文...