gpt4 book ai didi

javascript - 无法访问窗口/全局变量 - 似乎未定义

转载 作者:行者123 更新时间:2023-11-28 08:07:13 25 4
gpt4 key购买 nike

目标

访问window.MyApp

问题

如果我执行console.log(window)MyApp对象会出现在那里;如果我这样做 console.log(window.MyApp),控制台会抛出我:

Uncaught ReferenceError: MyApp is not defined

更进一步

我正在 Rails (v 4.0.1) 上使用 Ruby (v 2.1.2) 以及 Backbone (v 1.1.2) 和 Asset Pipeline。我的环境如下:

/app/assets/javascripts/backbone/myapp.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require underscore
//= require backbone
//= require_tree ./templates
//= require_tree ./models
//= require_tree ./views
//= require_tree ./routers

window.MyApp = {
Models: {},
Collections: {},
Routers: {},
Views: {}
};

/app/assets/javascripts/backbone/routers/my_router.js 中(错误发生的地方),有以下内容:

console.log(MyApp);

/app/views/layouts/application.html.erb中,我以这种方式调用/app/assets/javascripts/backbone/myapp.js :

<!doctype html>
<html>
<head>
<!-- lots of stuff here -->
<%= javascript_include_tag 'backbone/myapp' %>
</head>
<body>
<!-- lots of other stuffs here -->
</body>
</html>

最佳答案

我不确定全局对象是否会发生这种情况,但声明可能会被提升。如果您将声明 MyApp 声明移至需求之上或移动到不同的文件,并在其他 Backbone 项目之前要求它,它应该修复它。

关于javascript - 无法访问窗口/全局变量 - 似乎未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24679346/

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