我正在考虑为我的一个Sinatra应用程序切换到Ember.js。我们当前的设置是使用服务器端Handlebars渲染以及用于CRUD操作的RESTful路由和用于推送通知的Websockets。
然而,我主要担心的是模型代码的重复。
Ember Data是一个库,用于从持久层(例如JSON API)加载模型,更新这些模型,然后保存更改。它提供了许多您在服务器端ORM(如ActiveRecord)中找到的工具,但它是专为浏览器中JavaScript的独特环境而设计的。
据我所知,要使用Ember.js,我需要在Javascript中定义我的模型,因此复制了许多我们已经拥有服务器端的Mongo模型。它是否正确?在将Ember.js与Ruby后端结合使用时,如何减轻模型中的代码重复?
答案 0 :(得分:3)
您可能希望在客户端和服务器端之间完成一些任务。
模型本身将被复制,因为如果您有Ember Data模型,它可以更容易地与Ember一起使用。虽然,你可以动态建立自己的模型,只需要api调用一切(可能不建议)。你可以通过在路由的model
钩子内进行api调用来实现这一点。
一旦你设置了Ember Data模型,你就可以保持你的逻辑非常简单,让服务器完成更复杂的任务。但这在很大程度上取决于应用的具体需求。