日期:2014-05-16  浏览次数:20353 次

初步认识Backbone.js

作为一个轻量级MVC框架,如果是与后端交互比较频繁的站点使用这个框架,其效果是很显著的。从我个人角度而言,这个框架适合微博这类的实时性比较强并且牵扯用户信息比较多的网站,据说豆瓣的阿尔法城也是用这个框架做的。

如果从它的原理出发,我觉得是模仿或抄袭了ActionScript的PureMVC框架,但又有自己的特点,因为它融合了HTML DOM的特征,这点从它视图的events中可以看出。框架应该是从event配置中,寻找了事件后的选择器,然后把该事件绑了上去。参数传递无非就是apply或call,不出其右。

  1. window.EmployeeView = Backbone.View.extend({  
  2.         tagName : 'tr',  
  3.         template : _.template($('#item-template').html()),  
  4.         events : {  
  5.             "dblclick td" : "edit",  
  6.             "blur input,select" : "close",  
  7.             "click .del" : "clear",  
  8.         },  
  9.         initialize : function(){  
  10.             // 每次更新模型后重新渲染  
  11.             this.model.bind('change'this.render, this);  
  12.             // 每次删除模型之后自动移除UI  
  13.             this.model.bind('destroy'this.remove, this);  
  14.         },  
  15.         setText : function(){  
  16.             var model = this.model;  
  17.             this.input = $(this.el).find('input,select');   
  18.             this.input.each(function()