【发布时间】:2012-12-04 07:16:17
【问题描述】:
我想构建一个使用属性“名称”来查找用户记录的 ember 路由。
问题是restful后端的show action,它没有配置为使用“name”作为finder。
所以我想使用“名称”查询后端索引操作并实例化集合中返回的第一条记录。
在我看来,这应该可以使用 ember-data。
这是灰烬路线:
edit: Em.Route.extend
route: '/:name/edit'
deserialize: (router, params) ->
user = router.get('store').findQuery( App.User, { name: params.name } )
#return user[0]
#return user.get('content')[0]
return user
serialize: (router, user) ->
name: user.get('name')
connectOutlets: (router, user) ->
router.get('applicationController').connectOutlet('user', user)
有人有什么想法吗?
使用 DAN 建议的解决方案
loading: Em.State.extend()
edit: Em.Route.extend
route: '/:name/edit'
deserialize: (router, params) ->
user = router.get('store').findQuery( App.User, { name: params.name } )
deferred = $.Deferred()
user.addObserver "isLoaded", -> deferred.resolve( user.materializedObjectAt(0) )
return deferred.promise()
serialize: (router, user) ->
name: user.get('name')
connectOutlets: (router, user) ->
router.get('applicationController').connectOutlet('user', user)
【问题讨论】:
标签: ruby-on-rails ember.js ember-data