requireJS:定义用作全局变量的类

发布于 2024-12-21 14:38:59 字数 648 浏览 1 评论 0原文

由于某种原因,我真的似乎无法理解 RequireJS (查看了各种其他问题)

一些背景:

  • 我正在使用 jquery (所以没有 Node.js 自动构建的东西)
  • 我正在使用客户端 mVC lib 库(在我的例子中,它作为其设置的一部分,在其代码深处执行 require("Avail")
  • 'Avail' 是一个 javascript 类,它作为 window.Avail 全局存在,

我收到错误消息

未捕获错误:模块名称 'Avail' 尚未加载到上下文:_ http://requirejs.org/docs/errors.html#notloaded

我知道它没有加载,但如何做到这一点?当我的应用程序启动时,有没有办法告诉 requireJS 在默认上下文“_”下注册“Avail”?

我已经尝试了如下几种方法(以及很多变体,但我无法让它工作):

    (function() {   
       define("Avail", [],function(){
           return window.Avail
       });
     })();

非常感谢帮助。谢谢。

I really can't seem to grok RequireJS for some reason (having looked at various other questions)

Some background:

  • I'm using jquery (so no Node.js automatic build stuff)
  • I'm using a client-side mVC lib library (spine.js) which as part of it's setup, in my case, does require("Avail") deep inside it's code.
  • 'Avail' is a javascript-class which is present globally as window.Avail

I'm getting the error-msg

Uncaught Error: Module name 'Avail' has not been loaded yet for context: _
http://requirejs.org/docs/errors.html#notloaded

I get that it isn't loaded but how to do that? Is there a way to tell requireJS to register 'Avail' under the default context "_" when my app starts up?

I've tried several things like below (and lots of variations on that but I can't get it to work):

    (function() {   
       define("Avail", [],function(){
           return window.Avail
       });
     })();

Help much appreciated. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↘人皮目录ツ 2024-12-28 14:38:59

事实证明,尽管 Spine.js 的代码中已经对“models/Avail”进行了要求,但我自己也必须对“models/Avail”进行要求。

文件:spine.models.coffee

class Avail extends Spine.Model
@configure 'Avail'

define "models/Avail", ->
  Avail

文件:main.html

  require(["jquery","models/Avail"], function($) {
    $(function() {
       new Spine.App();
    })
  });

It turned out that even though Spine.js in it's code already did a require on 'models/Avail', I had to do a require myself on 'models/Avail' as well.

file: spine.models.coffee

class Avail extends Spine.Model
@configure 'Avail'

define "models/Avail", ->
  Avail

file: main.html

  require(["jquery","models/Avail"], function($) {
    $(function() {
       new Spine.App();
    })
  });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文