【发布时间】:2014-11-18 11:59:20
【问题描述】:
我是 Ember 的新手,多年来一直是铁杆骨干爱好者,我不知道如何处理我遇到的情况。
我正在使用Pusher 和Pusher Ember 库来构建一种聊天应用程序。
它的工作方式是,一个人导航到用户帐户页面并创建一个新的“对话”。然后,一旦创建了该对话,我想订阅一个以该对话 id 动态命名的推送频道。我需要在我的控制器上定义 Pusher 订阅。
这是我的路线(在咖啡脚本中)
App.ConversationShowRoute = Ember.Route.extend
model: (params) ->
@store.createRecord('conversation', user_id: params.user_id).save()
和我的控制器:
App.ConversationShowController = Ember.ObjectController.extend
init: ->
subscriptions = []
subscriptions[@model.get('id')] = ['newMessage']
PUSHER_SUBSCRIPTIONS: subscriptions
很遗憾,此时模型还没有解析,所以我还不知道我的@model.id 是什么,所以它失败了。
对于处理这个问题的最佳方法有什么建议吗?
【问题讨论】:
-
我注意到你没有从模型返回任何东西,你试过
return @store.createRecord('conversation', user_id: params.user_id).save()吗? -
@Hrishi 我相信 coffeescript 它默认返回函数的最后一行。无论如何,我试过了,没有骰子。我相信
init在控制器第一次实例化时被调用,但记录保存的承诺尚未返回,因此没有 id。
标签: javascript ruby-on-rails ember.js coffeescript