最近在学习 emberjs 框架,看了一些语法和结构,跟着跑了下例子,也用 rails 实现了下 todo 程序。目前只是停留在单页面程序上,但还是不是很清楚 emberjs 在 rails 中最厉害的地方是什么。
emberjs 和 rails 没啥关系啊,一个是前端 MVC 框架,rails 是一个后台 full-stack 框架。如果是说 gem 的话,那只是方便整合。
我感觉独立 mobile js 应用这个非常合适,我做了一个初始环境,你可以参考下,地址https://github.com/jeffma/mobi-app-sdk
#6 楼 @xiaocui Ember 是一个应用级别的框架,它不是一个库(好比 jQuery),也不是一个插件(好比 jQuery 的各种插件),它是用来创造整体化的并且更适合规模较大的应用程序的框架。框架是什么概念?那就好比 Ruby 的 Rails 框架,只不过 Ember 是用在前端的,Rails 是用在后端的而已。
因此你的问题很难回答,因为你问的是错误的。如果要回答“这个技术可以用在前端的哪些功能点”这个问题,那答案只能是:任何一个功能点都可以。
但是这个答案并不意味着前端方面只用 Ember 就够了。Ember 作为框架,它提供给你的是一个基础,涵盖了现代 Web App 所需要的一切基本功能支持,比如数据绑定(单向/双向)、状态控制和管理(路由)、视图抽象化(components 等)等等;另外作为一个框架,它当然还要负责应用逻辑分层和代码组织管理等基本功能(想想 Rails 里对应的概念)
具体到你要实现的功能,你可以只用 Ember,然后手写 Javascript 代码来实现(如果功能不太复杂的话);你也可以应用第三方的代码库,比如 jQuery 及其插件们(如果功能复杂的话)。还有其他各种各样的前端相关的功能特性都可以实施在 Ember 应用程序上(所谓 Ember 应用程序,就是指基于 Ember 框架开发的应用程序,可以是 Web,也可以是 Mobile),比如 WebSocket,各种 HTML5 API 等等都可以。
所以你的答案就是任何功能点都可以用在 Ember 应用内(注意,是“用在”,而不是“用”)。我觉得你的疑惑根源在于你把 Ember 看做了像 jQuery 或者 jQuery 插件这样的具有特定功能指向的库,然而 Ember 可不是这么简单的东西,它是框架,在抽象层面上要比库高的多,同样它可以覆盖的应用范围也广的多。
Ember 或者其他的前端 MVC 不是 Rails 的一个组成部分,跟 Rails 也没有任何关系。它是在前端提供分层架构的一个工具。就像 @nightire 说的,它的抽象层次比库要高,跟那些提供某种 UI 组件的 jQuery 插件不是一种类型的东西。
那什么时候需要用 Ember 或者其他前端 MVC 框架?那就是当你的前端代码复杂到需要分层来保持清晰度的时候。拿后端的 web 开发举例子,要写一个简单的网页,你可以用 PHP 直接做,不需要任何分层架构,你可以不要 model 把 SQL 写在页面上,也可以没有任何 controller 逻辑,只要你的需求足够简单。但如果你要做一个完整的 website 这样你会疯掉的。前端是同样的道理。
当你的前端复杂到工程级别时,你自然会需要一个单独的框架去帮你处理架构问题。否则用 jQuery 就挺好。