EmberJS - find / findAll和Route.deserialize和Route.serialize如何相关?

时间:2012-07-10 09:03:24

标签: serialization ember.js ember-old-router

您好回答了这个奇妙的问题Ember.js - CRUD scenarios - Specifying View from within a Route找到并找到了在模型上用于自动反序列化URL的所有内容。

这个界面是什么样的,它真的是模型而不是控制器吗?

一个例子很精彩。

1 个答案:

答案 0 :(得分:4)

与往常一样,文档是一个令人惊叹的起点。请查看https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L231-273以获取默认的序列化/反序列化方法。

你有正确的想法。

  • Ember获取最近的动态细分,例如blog_post_id
  • 从最后剥离_id,留下blog_post
  • 调用返回BlogPost的Ember.String.classify('blog_post')
  • 它在Ember名称空间下查找该modelClass,例如App.BlogPost
  • 它在该模型上调用find。例如App.BlogPost.find(1)

编辑:

在回应Neppord的评论时,他询问了多个动态细分。 是的ember-router目前支持单个路由中的多个动态段。

Ember.Route.extend({
  route: "/:post_type/:post_id"
})

如果您确实需要它,那么您必须编写自己的反序列化/序列化方法。 就个人而言,我只是使用嵌套的动态状态。

Ember.Route.extend({
  route: "/:post_type"
  post: Ember.Route.extend({
    route: "/:post_id"
  })
})