嗨,我需要创建一个客户端集合,我使用 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/