2

嗨,我正在使用流星创建一个放债跟踪网站。这是我第一次尝试学习meteor js。我尝试在我的 js 文件中编写以下代码

var lists = new Meteor.Collection("Lists");

但是当我在刷新页面并输入后返回 Chrome 开发者控制台时

lists
ReferenceError: lists is not defined
get stack: function () { [native code] }
message: "lists is not defined"
set stack: function () { [native code] }
__proto__: Error

有什么我想念的吗?任何人都可以帮助我。

4

3 回答 3

6

您无法从 Web 控制台访问列表,因为代码的范围是每个文件。在流星中,您的代码将作为

function() {
    var lists = new Meteor.Collection("Lists");
    ....
}

因此,要在控制台中访问您的集合,您需要通过将您的行更改为全局范围:

lists = new Meteor.Collection("Lists");

这样就lists可以在任何地方使用,例如其他文件和 webkit 控制台

于 2013-04-14T04:44:45.110 回答
3

那些使用该示例起源的书“Getting Started with meteor.js”的人......作者指示在“列表”之前使用 var 关键字,从而局部范围限定该变量并导致与书上说你应该在浏览器控制台中看到和实际看到的内容。这是书中的一个错误,我一直无法找到该书的任何在线勘误表。

于 2014-03-01T16:44:10.777 回答
1

摘自《Meteor.js JavaScript 入门》一书

勘误类型:代码| 页码:第 2 章。反应式编程……它还活着!,| 勘误日期:18-4-2013

在示例中:

var lists = new Meteor.Collection("Lists");

应该改为阅读

list = new Meteor.Collection("Lists");

原因是“...Meteor 0.6 添加了文件级 JavaScript 变量
作用域。在 JavaScript
源文件的最外层用 var 声明的变量现在是该文件私有的。删除 var 以
在文件之间共享一个值。”

于 2015-07-21T02:10:56.527 回答