【发布时间】:2015-10-23 14:12:47
【问题描述】:
我有一个基本的 Ember 前端应用程序,它通过初始化程序中的 websocket 连接到 Phoenix 后端。接下来我希望能够使用chan.push("new_msg", {body: "test"})向凤凰频道发送消息。
显然,我不能从初始化程序本身执行此操作,但这是定义“chan”的唯一位置,我不知道如何从其他位置访问它。
我希望这发生在来自 {{input action="sendMessage()"}} 的动作上,所以我尝试了几件事,例如将 sendMessage() 函数放在初始化程序中并在组件动作中调用它等等......但任何时候我尝试从另一个文件访问初始化程序(反之亦然)我收到一条错误消息,指出该函数未定义。我知道初始化程序当然不应该以这种方式使用,我只是不知道在哪里放置代码以便我可以访问我定义的 websocket 连接。
与此问题相关的大部分代码与您将在本指南中看到的内容相匹配:http://chrismcg.com/2015/07/04/teaching-ember-cli-to-talk-to-phoenix-sockets/。不幸的是,这并没有涵盖如何从前端为初学者使用这个 websocket 连接。
【问题讨论】:
-
你的动作语法错误,应该是
{{input action="sendMessage"}} -
是的,我一直在溜进这个。坏习惯。谢谢。
标签: javascript ember.js phoenix-framework