EmberJS Ember 中的 model 如何和 Rails 中的保持一致

dongli1985 · 2015年12月04日 · 最后由 dongli1985 回复于 2015年12月04日 · 2829 次阅读

自己有一个平台项目,做了几个月的Rails,基本实现了架子,但是后续想要增加交互功能,越写jquery越头大,没有章法可言,因此想尝试换用EmberJS。不过EmberJS是一个MVC框架,里面也有自己的model,那么它如何和后端Rails保持一致呢?不会要手动修改吧?刚刚接触EmberJS,看了一些资料,但是还未掌握精髓。

共收到 6 条回复

前端的model一般是 api model,不一定要和后端一致 如果 api 返回的格式不符合标准,还可以用 serializer 序列化成标准的 model http://emberigniter.com/fit-any-backend-into-ember-custom-adapters-serializers/

#1楼 @chaucerling 谢谢提供上面那个及时更新的材料,非常需要~

#2楼 @dongli1985 我想请你回顾自己说的这句话:

不过EmberJS是一个MVC框架,里面也有自己的model,那么它如何和后端Rails保持一致呢?不会要手动修改吧?

然后重新问问自己:为什么前端的 Model 要和后端保持一致(同步)呢?

之后推荐你看看这个视频:https://www.youtube.com/watch?v=gk-xyLM7R4g

Yehuda 用 Ember 仿做 Github(部分)的视频,在这段视频里 Yehuda 没有使用 Ember Data,也就不存在你原本顾虑的 Model 问题。然而从另外一个角度来讲,前端开发往往是对后端的 MVC 一无所知的(就好像你不是 Github 的员工,你怎么知道它后端的 MVC 细节如何?),我们能知道的最靠谱的东西就是 API 了。

所以你顾虑的问题是和具体的技术/框架(比如 Ember)无关的,它的终极命题是:客户端在不知道服务端具体实现的情况下,如何保持和服务端的业务模型/逻辑一致(同步)?

简单的答案是:客户端是不是 MVC 不重要,不是 MVC 也可以有 Data Model Layer,只不过它 mapping 的对象是 API 而不是服务端的 MVC 层。所以设计好你的 API,底层的实现你随意变不要紧,API 保持一致客户端就很 OK。

#3楼 @nightire 谢谢你的建议!目前我只是在初步尝试,由于我们只有两个人在开发,所以想尽可能简化下开发流程。看来只能边设计API返回的JSON,边设置Ember中的model。

#4楼 @dongli1985 基本如此。不过这个过程其实也可以反过来,在很多时候往往客户端开发者要比服务端开发者更理解 API 应该是什么样子的(两边的理解高度一致那最好,不过这是理想化的结果),所以你完全可以先从客户端开始,无非就是借助假数据(就好像后端测试用的 fixtures)先实现客户端的 UI 功能,然后以此为导向实现真正的 API,最后两边一对接就好了。这是一种可行的办法,而且挺适合两人组合干活的。

#5楼 @nightire 我的小伙伴目前还主抓Rails,我先来打打酱油~ 争取走通Ember这条路。再次感谢!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册