无法在Google Chrome控制台中访问变量

问题描述 投票:1回答:2

我使用的是最新版本的Meteor js。我是新手,无法找到解决方案。我经常为这个问题上网冲浪。

在讨论问题之前,请先查看目录结构。

我的项目目录结构如下:

\client
    \main.html
    \main.css
    \main.js
\imports
    \lib
       \todos
           \todos.js
\server
    \main.js

我在Mongo Object创造了一个todos.js

export const Todos = new Mongo.Collections('todos');

这工作正常。

现在在client\main.js,我正在导入这个对象,

import { Todos } from '\imports\lib\todos\todos.js';

注意:我尝试了相对和绝对两种类型的寻址。

之后我放了一个debugger并检查,变量就在那里。我可以在控制台上访问该变量。但是一旦我通过声明并且所有代码都在浏览器上呈现(谷歌浏览器),我就无法使用Todos。它给了我一个ReferenceError。错误是

Todos没有定义。

我知道在浏览器加载之前没有问题,因为我检查了一下。我冲浪了很多次。请帮我。

先感谢您。

编辑1:如果有必要,我正在使用Windows 7。

javascript meteor meteor-blaze
2个回答
1
投票

正如上面的评论所述,在文件/模块中声明或导入的变量不会在开发人员控制台上结束。

你可以做什么来获取控制台上的东西是使用require导入控制台

> require('/imports/lib/todos/todos.js')

任何有效的绝对路径或包都可以在这里工作

注意:路径分隔符始终是* nix样式/


0
投票

尝试在Chrome控制台中评估来自Moment.js的moment时,我遇到了类似的问题。它是由被调试的脚本/在断点下导入的,但在控制台中不起作用。控制台中的importrequire Moment.js给了我错误,并没有为我工作。

我最终切换到Firefox Developer Edition,在那里我可以放置断点,然后在开箱即用的控制台中评估moment而没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.