可以查看http://www.css88.com/doc/backbone/

backbone与angular http://www.infoq.com/cn/articles/backbone-vs-angular/

http://blog.csdn.net/huangxin0102/article/details/50930772

1.

  1. /**
  2. * 模型 - Model
  3. */
  4. var Note = Backbone.Model.extend({
  5. defaults: {
  6. title: '',
  7. created_at: new Date()
  8. },
  9. initialize: function() {
  10. console.log('新创建了一条笔记:' + this.get('title'));
  11. this.on('change', function(model, options) {
  12. console.log('属性的值发生了变化');
  13. });
  14. this.on('change:title', function(model, options) {
  15. console.log('title 属性发生了变化');
  16. });
  17. this.on('invalid', function(model, error) {
  18. console.log(error);
  19. })
  20. },
  21. validate: function(attributes, options) {
  22. if (attributes.title.length < 3) {
  23. return '笔记的标题字符数要大于 3';
  24. }
  25. }
  26. });
  27.  
  28. /**
  29. * 视图 - View
  30. */
  31. var NoteView = Backbone.View.extend({
  32. tagName: 'li',
  33. className: 'item',
  34. attributes: {
  35. 'data-role': 'list'
  36. },
  37. template: _.template(jQuery('#list-template').html()),
  38.  
  39. render: function() {
  40. this.$el.html(this.template(this.model.attributes));
  41. return this;
  42. }
  43. });
  44. /**
  45. * 集合 - Collection
  46. */
  47. var NoteCollection = Backbone.Collection.extend({
  48. model: Note,
  49. initialize: function() {
  50. this.on({
  51. 'add': function(model, collection, options) {
  52. console.log('ID: ' + model.id + '模型添加到了集合里');
  53. },
  54. 'remove': function(model, collection, options) {
  55. console.log('ID: ' + model.id + '模型从集合里删除掉了');
  56. },
  57. 'change': function(model, options) {
  58. console.log('集合里的模型发生了变化');
  59. }
  60. });
  61. }
  62. });
  63. //学习到的
  64. /**
  65. * var ss = new NoteCollection();
  66. ss.add({id: 4, title: '西红柿炒鸡蛋的做法'});//可以这样子新添加一个
  67. ss.add({id: 4, title: '西红柿炒鸡蛋的做法'},{merge:true});
  68. 还有remove,reset,pop,shift
  69. set方法可以设置remove:false的
  70. */
  71.  
  72. /**
  73. * 集合视图 - Collection View
  74. */
  75. var NoteCollectionView = Backbone.View.extend({
  76. tagName: 'ul',
  77. initialize: function() {
  78. this.collection.on('add', this.addOne, this);
  79. this.render();
  80. },
  81. render: function() {
  82. this.collection.each(this.addOne, this);
  83. return this;
  84. },
  85. addOne: function(note) {
  86. var noteView = new NoteView({model: note});
  87. this.$el.append(noteView.render().el);
  88. }
  89. });
  90. /**
  91. * 测试
  92. */
  93.  
  94. var note1 = new Note({id: 1, title: '西红柿炒鸡蛋的做法'});
  95. var note2 = new Note({id: 2, title: '周六参加朋友的婚礼'});
  96. var note3 = new Note({id: 3, title: '晚上回家洗尿布'});
  97.  
  98. var noteCollection = new NoteCollection([note1, note2, note3]);
  99. var noteCollectionView = new NoteCollectionView({collection: noteCollection});

backbone的路由

  1. var NoteRouter = Backbone.Router.extend({
  2. routes: {
  3. 'notes': 'index',
  4. 'notes/:id': 'show',
  5. 'login(/from/*from)':'login'//*表示不论后边有多少层路由
  6. },
  7.  
  8. index: function() {
  9. jQuery('#note_list').html(noteCollectionView.el);
  10. console.log('笔记列表');
  11. },
  12.  
  13. show: function(id) {
  14. this.navigate('login/from/notes/'+id,{trigger,true});//trigger true表示可以出发方法
  15. console.log('笔记:' + id);
  16. var note = noteCollection.get(id);
  17. var noteView = new NoteView({model: note});
  18. jQuery('#note_list').html(noteView.render().el);
  19. }
  20. });
  21.  
  22. var noteRoute = new NoteRouter;
  23. Backbone.history.start();

  

backbone点滴的更多相关文章

  1. js的点滴

    一些好的博客 http://www.cnblogs.com/coding4/p/7809063.html canvas http://www.cnblogs.com/coding4/p/5593954 ...

  2. Backbone源码解析(六):观察者模式应用

    卤煮在大概一年前写过backbone的源码分析,里面讲的是对一些backbone框架的方法的讲解.这几天重新看了几遍backbone的源码,才发现之前对于它的理解不够深入,只关注了它的一些部分的细节和 ...

  3. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  4. 使用backbone的history管理SPA应用的url

    本文介绍如何使用backbone的history模块实现SPA应用里面的URL管理.SPA应用的核心在于使用无刷新的方式更改url,从而引发页面内容的改变.从实现上来看,url的管理和页面内容的管理是 ...

  5. Backbone中的model和collection在做save或者create操作时, 如何选择用POST还是PUT方法 ?

    Model和Collection和后台的WEB server进行数据同步非常方便, 都只需要在实行里面添加一url就可以了,backbone会在model进行save或者collection进行cre ...

  6. Backbone.js 中的Model被Destroy后,不能触发success的一个原因

    下面这段代码中, 当调用destroy时,backbone会通过model中的url,向服务端发起一个HTTP DELETE请求, 以删除后台数据库中的user数据. 成功后,会回调触发绑定到dest ...

  7. Backbone.js应用基础

    前言: Backbone.js是一款JavaScript MVC应用框架,强制依赖于一个实用型js库underscore.js,非强制依赖于jquery:其主要组件有模型,视图,集合,路由:与后台的交 ...

  8. Backbone事件模块及其用法

    事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...

  9. Backbone源码学习之extend

    extend函数在backbone大概就20来行代码包括注释,对学习Javascript中"类"的继承很是好的学习资料. 下面先贴出Backbone中的源码,其中涉及到unders ...

随机推荐

  1. Gym 102056I - Misunderstood … Missing - [DP][The 2018 ICPC Asia-East Continent Final Problem I]

    题目链接:https://codeforces.com/gym/102056/problem/I Warm sunshine, cool wind and a fine day, while the ...

  2. 删除64位ODBC数据源DNS

    1.按照打开管理工具-打开数据源(ODBC),进入如下界面,选择用户DSN删除,发现报错一直删除不了. 2.成功删除:进入如下图路径,打开ODBC数据源管理工具,选择要删除的DSN就可以成功删除啦.

  3. (备忘)打开office2010总是在配置进度

    1.同时按上键盘上面的windows键和R键,出现“运行” 2.输入“regedit”,回车进入注册表 3.点击“HKEY_CURRENT_USER”展开,依次“Software”--“Microso ...

  4. (4.8)mysql备份还原——binlog查看工具之show binlog的使用

    (4.8)mysql备份还原——binlog查看工具之mysqlbinlog及show binlog的使用 关键词:show binlog,mysql binlog查看,二进制文件查看,binlog查 ...

  5. linux 防火墙 iptables 目录

    linux iptables 防火墙简介 Linux 防火墙:Netfilter iptables 自动化部署iptables防火墙脚本

  6. js根据年月得到当前这个月总共有多少天

    let curmonth; var curDay=this.getday(this.year,this.month); if(this.month >=10) { var curDate = t ...

  7. [js]js设计模式-修改原型

    参考 操作原型 - 给原型添加属性 - 方法1: Fn.prototype.sum=function{} - 方法2: Fn.prototype={} //constructor指向了Object的原 ...

  8. 【JVM】-NO.114.JVM.1 -【JDK11 HashMap详解-3-put-treeifyBin()-AVL】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  9. 【Tools】-NO.93.Tools.5.pyCharm-【pyCharm 安装与破解配置】-

    1.0.0 Summary Tittle:[Tools]-NO.93.Tools.5.pyCharm-[pyCharm 安装与破解配置]- Style:Tools Series:Tools Since ...

  10. python迭代-可迭代对象与迭代器对象

    可迭代对象与迭代器对象 问题举例 某软件要求,从网络抓取各个城市的气温信息,并依次显示: 北京:15~22 上海:18~23 ...... 如果一次抓取所有城市气温信息再显示,显示第一个城市的气温时会 ...