所以我尝试使用 Ionic 2 CLI 构建 angular-meteor WhatsApp 克隆教程
本教程基本上删除了client
流星项目中的文件夹,并使用离子项目中的流星客户端包连接到流星服务器。
效果很好,但是现在我想订阅带有反应参数的流星出版物。
在搜索 Meteor API 文档后,我找到了Session对象:
Session 在客户端上提供了一个全局对象,您可以使用它来存储任意一组键值对。使用它来存储列表中当前选定项目之类的内容。
Session 的特别之处在于它是响应式的。如果您
Session.get("currentList")
从模板内部调用,则无论何时调用该模板都会自动重新呈现Session.set("currentList", x)
。
在Meteor 订阅文档中,您可以找到以下示例:
Tracker.autorun(function () { Meteor.subscribe("chat", {room: Session.get("current-room")}); Meteor.subscribe("privateMessages"); });
这将使您订阅当前房间中的聊天消息和您的私人消息。当你调用 Session.set("current-room", "new-room") 换房间时,Meteor 会订阅新房间的聊天消息,退订原房间的聊天消息,并继续订阅你的私信.
这正是我想做的。但正如会话文档所述,会话是我必须添加到流星项目中的一个包:
要将 Session 添加到您的应用程序,请在终端中运行以下命令:
meteor add session
现在我的问题是,有没有办法将会话添加到流星客户端包?
如果我只是尝试调用Session.set()
它在运行时失败Session is not defined
我的猜测是我需要一些 npm 包来提取会话功能(基本上是会话客户端 npm 包),例如accounts-base-client-side
还有其他方法可以做到这一点吗?我将如何构建自己的会话客户端?
我试图meteor add session
在我的流星项目中运行,但无法在.meteor
文件夹和npm_modules
.
我还查看了流星 GitHub,但他们拥有的 Session.js 文件仅包含文档
任何输入如何做这样的事情都会很好
更新:
我查看了accounts-base-client-side包,发现它们是使用脚本自动生成的,所以我目前正在尝试调整这个脚本来使用Session而不是accounts-base。您可以在以下位置找到我的尝试:https ://github.com/AwsmOli/session-client-side
仍在进行中,但我应该尽快让它工作
更新 2:
看看我的回答,我的会话客户端现在正在工作:)