Backbone和AngularJS对比:1、模板引擎不同。(1)AngularJSAngular 的模板引擎仅仅是在 HTML 上使用绑定表达式。而绑定表达式又仅仅是两层大括号而已:<ul><li ng-repeat="framework in frameworks"title="{{framework.description}}">{{framework.name}}</li></ul>(2)Backbone 可以和许多第三方模板引擎集成,默认的选择是 Underscore 模板。 因为 Underscore 是 Backbone 的依赖项,比较麻烦的是,Underscore 的模板引擎非常初级,通常不得不把 javascript 混进去,比如说:<ul><% _.each(frameworks, function(framework) { %><li title="<%- framework.description %>"><%- framework.name %></li><% }); %></ul>2、各自的好处不同:Angular 为 Web 开发带来了许多创新的概念。双向数据绑定节省了大量的样板代码。比如下面的 jQuery 代码片段:$('#greet-form input.user-name').on('value', function() {$('#greet-form div.user-name').text('Hello ' + this.val() + '!');});由于 Angular 的双向绑定,你根本就不需要自己写代码。只需要在 HTML 模板里面声明绑定就可以了:<input ng-model="user.name" type="text" />Hello {{user.name}}!总结:Angular 帮助你把构建应用的程序块划分为下面这几种类型:控制器(Controller),指令(Directive),工厂(Factory),过滤器(Filter),服务(Service)和视图(View) (就是模板)。它们被组织为模块形式,之后可以被另一个引用。每种类型有不同的作用。视图处理 UI,控制器处理 UI 背后的逻辑,服务用来处理和后台的通信,并且将共通的有关联的功能组件结合在一起,而指令通过定义新的元素,属性和行为,很容易的构造可重用的组件,以及HTML扩展。Backbone 轻量,快速,内存占用小。学习曲线也是很平缓的,只需要几个简单的概念就能掌握 (模型/集合, 视图, 路由)。它有很棒的文档,代码简单,注释详细,并且这里还有一个注释版源码,用来解释框架的工作细节。实际上你可以通读整个框架的源码,用不到一个小时去熟悉它。因为又小又基础,你可以基于 Backbone 打造你自己的框架。一些基于 Backbone 的第三方框架的例子有 Aura, Backbone UI, Chaplin, Geppetto, Marionette, LayoutManager, Thorax, Vertebrae。用 Angular 和 Ember 你一般都要用框架作者给你的选择,有些可能会不适合你的工程需求和个人风格。Angular 2.0 承诺改变这种情况,通过构建更小的独立模块,使你可以选择和组合它们。不过我们还没看到它什么时候才能交付。