我拼命想让 Ember 1.x 中的 slug 工作。
我的序列化方法似乎工作正常。我可以使用 link-to helper 或 transitionToRoute 方法毫无问题地导航到我的路线。但是当我重新加载我的页面时,我得到了一堆错误,因为我的承诺解决了一系列模型而不是单个模型。
如何将 findQuery 的结果减少到一个模型?
我在这里找到了旧版 Ember.js 的有用答案: 在 emberjs 路由中使用 slug 不幸的是,该解决方案不再有效。“one”没有定义,所以我试图让我的代码适应当前版本。根据 Promise 文档,应将 Promise 对象的 then 方法中的返回值传递给下一个处理程序。但是之后我仍然得到一个数组和我的错误。
我的路线实现:
App.ManageRoute = Ember.Route.extend
model: (params) ->
promise = @get('store').findQuery('company', {slug: params.company_id})
promise.then (models) ->
return models.get("firstObject")
return promise;
serialize: (model, params) ->
return {company_id: model.get('slug')}
[更新]
解决方案是为单个模型创建并返回一个新的 Promise 对象。