我是meteor和coffeescript的新手。我正在使用非官方流星常见问题解答中建议的文件布局。在文件集/ C.coffee中,我有
C = new Meteor.Collection 'C'
console.log "C: #{C}"
在文件服务器/ main.coffee中,我有
C.insert {test: 'test'}
当我开始流星时,我在控制台上看到:
C: [object Object]
ReferenceError: C is not defined
at app/server/main.coffee.js:5:1
at /home/xxx/yyy/.meteor/local/build/server/server.js:298:12
如何在馆藏/ C.coffee之外的文件中提供C?
更新:将@添加到C修复了顶层的问题。但它仍然失败:
Meteor.methods
test: (statement) ->
@C.insert {test: 'test'}
失败并显示错误TypeError: Cannot call method 'insert' of undefined
答案 0 :(得分:13)
要使C在文件外可见,它是在使用@
中定义的,它在js中编译为this.
或window.
,这使其具有与全局范围相同的效果: / p>
@C = new Meteor.Collection 'C'