除非做 web app,不然我真的觉得 Angular 和 Ember 太过重了,只是个别页面需要用到 ajax 的情况,就使用 backbone 很好,但是如果做单页面的 app,backbone 就很吃力了。 如果不是单页面 app,不用使用 mvc,觉得很凌乱,全用 ujs 其实工作量很大的。 所以不知道朋友们有没有同感呢?还是说 Angular 或 Ember 大小通吃?
#1 楼 @zhulinpinyu 为什么从 angular 到 backbone? #2 楼 @everett gon 指的是?angular 和 ember 确实 2 选 1 就可以了,我的疑问是是否还要学个 backbone
@QueXuQ 传变量到 js 的 gem,特别适合重构现有页面到 jquey 小应用或 jquey 植入,当然 data attribute 也很方便,但这个能起到一定程度的全页变量。
#6 楼 @everett 哈哈,Gon 有一页 wiki 是我写的 https://github.com/gazay/gon/wiki/Usage-gon.rabl-with-Backbone.js
Angular 哪里重了,backbone 还要依赖 jQuery 呢 backbone 最早就是为了单页应用需求产生的,但是后来还是有了 Angular, Ember 这些嘛.. 在没有遇到这些困难,这些困难就被解决了的话,确实会觉得很困惑...
#9 楼 @cqcn1991 可以看这个:http://railscasts.com/episodes/405-angularjs 我只是大概了解过 angular,开始用起来用爽,但是后面发现很多坑。到后面选择了 ember,但是 ember 入门比较难。 如果是 ember 的例子就非 discourse 莫属了:https://github.com/discourse/discourse js mvc 用的就是 ajax,但是他把这些概念封装好了。例如本来你要获取一个 model 的值,你写 ajax 的话要:
$.get('test/1', function(data) {
$('.result').html(data);
});
就是到一个 api 接口发送请求,而如果使用了 js mvc(ember)后:
App.Test.find(params.test_id)
经过这样的封装就非常易懂,而且写起来很方便。 而 mvc 还有一个优势是使用了模板,就不需要写大量的 dom,例如:
$("p").click(function () {
var htmlStr = $(this).html();
$(this).text(htmlStr);
});
而 ember 下的 handlebars 就是和 html 一样,然后就上面的例子,当点击 p 的时候,就读取这个 handlebars,然后就自动插入{{outlet}}
的地方,就不需要写各种 dom 的。