gpt4 book ai didi

javascript - 在 Meteor.js 中定义变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:25:27 24 4
gpt4 key购买 nike

当我如下所示定义变量 lists 并在控制台中键入 lists 时,出现错误 ReferenceError: lists is not defined

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

if (Meteor.isClient) {
Template.hello.greeting = function () {
return "my list.";
};

Template.hello.events({
'click input' : function () {
// template data, if any, is available in 'this'
if (typeof console !== 'undefined')
console.log("You pressed the button");
}
});
}

if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}

只有当我将 lists 声明为全局变量时它才有效:

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

问题:为什么它必须是全局范围的?

最佳答案

要在控制台中访问列表,您需要使用全局范围,因为控制台在文件本身的范围之外,因为控制台被视为它自己的文件。

使用var,您可以访问文件中任何位置的列表

本质上,每个文件都包含在 function() {..} 中。这就是为什么不能从外部访问每个文件的变量的原因。

存在变量作用域的原因稍微复杂一些,但更多地与第三方包/npm 模块有关。每个包都需要有自己的范围,不会与外部的东西发生名称冲突。

如果你想更正常地使用它,你也可以把它放在/compatibility文件夹中。

关于javascript - 在 Meteor.js 中定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17788366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com