Backbone.js和CakePHP

dcl*_*901 15 javascript cakephp backbone.js

我有兴趣在我们的应用程序中构建一些更重复的页内CRUD结构Backbone.js(它建立在CakePHP框架上).我一直试图抓住Backbone,同时弄清楚它如何与Cake一起工作,而且在分离双方的职责时我有点迷失.

我试图将某些内容添加到我的网站中而不需要在那里吗?这种堆栈结构有优先权吗?我现在都是耳朵.

Kev*_*eel 28

我现在实际上正在处理相同的情况(尽管使用Python/Flask,但相同的概念应该适用于任何服务器端语言).以下是我的应用程序中页面的工作流程.请注意,我不遵循单页面应用程序格式; 在我的应用程序中,每个主要页面都是完全重新加载.

  1. 用户请求页面,说公司列表,/公司/列表/
  2. 服务器执行路由,加载正确的控制器
  3. 控制器从DB加载第一批X公司
  4. 公司编码为JSON
  5. 加载其他元数据(例如公司总数)并转换为JSON
  6. 加载列表页面模板,并将JSON弹出到模板中的<script>标记中.请注意,我没有填写列表或其他任何内容,我让Backbone完成所有这些工作.我在这里填写JSON,这样客户就不必再为初始公司做出第二次请求了
  7. 列表页面被发送到客户端.服务器现在完成了
  8. 客户端具有启动所需的所有数据,因此我将JSON传递给我的Backbone.View以获取列表页面
  9. 该视图为模型创建集合,并管理一组表示列表中条目的子视图
  10. 创建任何其他处理/视图创建,例如页面创建,上一个/下一个按钮等.
  11. 如果用户点击公司的下一页,我会向服务器(/ companies/listing/page/1或其他)发出一个AJAX查询,该查询返回一个带有一组新模型的新JSON字符串
  12. 将新的模型集发送到我的Backbone.View,它可以刷新所有内容

实际上,服务器只用于实际的数据加载和模板的初始发送.我喜欢这个,因为它可以让我轻松地连接新的前端(例如,iPad应用程序或其他东西).

对于一个表格,在非常广泛的笔画中,我做这样的事情:

  1. 用户请求表单/ companies/edit/1
  2. 服务器执行权限检查,加载条目,将模板/ JSON发送到客户端.服务器不会使用数据填写表单
  3. 客户端使用JSON填写表单
  4. 客户修改表单,点击提交
  5. 所有更改都应用于模型,模型转换为JSON并使用AJAX发送到服务器
  6. 服务器执行验证并将错误消息(以JSON格式)发送到客户端或更新数据库并发送成功消息

所以,对于我是如何做到的,这些都是非常广泛的.一般来说,我使用服务器从数据库中获取数据,进行服务器端验证(不能信任客户端),并更新数据库.

如果您有一些具体问题,我会很乐意尝试分享到目前为止我学到的东西.