gpt4 book ai didi

ruby-on-rails - ember.js 从路由器中的 ember-data 查询中实例化第一条记录

转载 作者:行者123 更新时间:2023-12-02 02:09:07 25 4
gpt4 key购买 nike

我想构建一个使用属性“name”来查找用户记录的 ember 路由。

问题是 restful 后端的显示操作,它没有配置为使用“name”作为查找器。

所以我想使用“名称”查询后端索引操作并实例化集合中返回的第一条记录。

在我看来,这应该可以使用 ember-data 实现。

这是 Ember 路线:

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)

有人有什么想法吗?

使用丹的建议的解决方案

 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)

最佳答案

听起来您需要实现异步路由,因为 findQuery 是一个异步方法。查看 Luke Melia 关于该主题的幻灯片(尤其是幻灯片 11):

http://www.lukemelia.com/blog/archives/2012/09/18/async-routing-in-ember-js/

关于ruby-on-rails - ember.js 从路由器中的 ember-data 查询中实例化第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13676353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com