我在应用程序模板中有一个显示在页面顶部的购物车的应用程序。然后,在应用程序路径中,我按照以下方式定义模型:
App.ApplicationRoute = Em.Route.extend
model: (->
@store.find('cart', @session.get('cart_id')
).observes('session.cart_id')
当用户登录时,我想将该购物车替换为从服务器加载的购物车。解决这个问题的最佳方式是什么?
我明白了这一点,购物车被加载到Ember Data商店,观察者块被执行,但模板没有使用新模型更新。或者,也许,我应该使用完全不同的东西吗?
答案 0 :(得分:1)
路由器在为当前路由连接模型时调用模型挂钩。如果您想在控制器上更改模型,只需抓住控制器并将model
属性设置为新模型。
假设会话存在于应用程序路由
中App.ApplicationRoute = Em.Route.extend
updateModel: (->
@store.find('cart', @session.get('cart_id')).then (record) =>
@controller.set('model', record)
).observes('session.cart_id')
(我混合和匹配的coffeescript,我只知道来自stackoverflow的问题,很抱歉,如果这是错的)