javascript - 无法使用 CoffeeScript 在 Meteor 中创建仅限客户端的集合

标签 javascript meteor collections coffeescript

嗨,我需要创建一个客户端集合,我使用 CoffeeScript,我尝试像这样创建它:

Template.mcqQuestionOptionsFieldset.onCreated ->
  @AddMcqOptions = new Mongo.Collection null

当我运行该应用程序时,它不起作用,我收到错误:

ReferenceError:AddMcqOptions 未定义

我在没有“@”符号的情况下尝试了所有操作,但在 javascript 控制台中我看不到它已加载,似乎该集合不存在...

如果我删除@符号,错误路径会移动到其他文件我正在尝试使用该变量,但是如果我添加@,错误路径会显示在我声明该变量的同一文件中,有人可以告诉我发生了什么事吗?

谢谢

最佳答案

不需要在模板中定义客户端集合,特别是当您在其他文件中使用它时。

只需添加一个文件,例如client/collections.coffee:

@AddMcqOptions = new Mongo.Collection null

然后在客户端的任何地方正常使用 AddMcqOptions.insert(...) 等。

如果你想保留当前的结构,也可以使用粗箭头(不过我还没有测试过)。您还将失去对模板引用的 this/@ 的访问权限。

Template.mcqQuestionOptionsFieldset.onCreated =>
  @AddMcqOptions = new Mongo.Collection null

另一个可能的选项,允许您正常使用 this/@:

self = this
Template.mcqQuestionOptionsFieldset.onCreated ->
  self.AddMcqOptions = new Mongo.Collection null

关于javascript - 无法使用 CoffeeScript 在 Meteor 中创建仅限客户端的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31307957/

相关文章:

javascript - Puppeteer 和浏览器WSEndpoint : can't upload files dynamically

javascript - ASP.Net MVC4 返回带有目录列表的 html 页面而不是其内部 javascript 脚本文件

javascript - 从另一个页面获取 ElementById

javascript - document.caretPositionFromPoint 抓取太高

javascript - 在下一步之前等待 meteor 收集完成

java - 树集的行为不同,但哈希集在自定义对象的情况下则不然

mongodb - 无法在窗口系统上的 meteor 中设置mongodb路径

javascript - JS 事件在 DOM 中冒泡

java - 如果 keySet() 维护 HashMap 的顺序,为什么我们需要 LinkedHashMap?

java - 通过两个参数对 Java 列表进行排序?