我有一个模块返回一个由JSON数据和图像对象组成的数组。由于加载JSON(从其他文件)和图像对象都需要时间,所以我需要我的模块仅在两者完成后才返回数组。目前,该模块总是在其他模块中返回“undefined”,我相信这是因为该模块没有像我预期的那样等待返回(但我不确定)。或者,因为使用此Atlas模块的其他模块在返回任何内容之前将其声明为变量。编辑以展示我如何定义/要求模块*再次编辑以显示更多代码*Thelivecodecanbeseenhere.这是我的tile-atlas模块:define(function(){vartilesheetPaths=["tilesheets/groun
我有一个模块,我想将其包含在Require.js链中。(更具体地说:https://github.com/component/emitter)在浏览器上我得到:UncaughtReferenceError:模块未定义对于模块导出,它定义了:module.exports=Emitter;我猜这就是所谓的AMD/Node方式。如有错误请指正。无论如何,我希望require.js能够以某种方式在浏览器中进行模块化。我认为Require.js的声明性填充选项可以帮助我,但我仍然看到上述错误。如何在不手动修补模块的情况下解决这个问题?(因为我想保留我设置的自动构建过程)
帮助!我很困惑,伙计们......我不知道我在做什么我昨天和今天一整天都在查看RequireJS和AMD教程和示例,并了解了这一点,但是我认为我对什么是模块仍然存在根本性的误解。我有一堆函数可以从我的HTML元素中调用“onClick”...如何使用RequireJS定义我的函数以便调用它们?很困惑:/我也不明白如何调用我的onLoad函数(在我的例子中是$(function(),但我如何在RequireJS中启动它?)我正在使用Nodev0.10.12.........//Ireallyneedallthesejavascriptfilesforeveryfunctiondefine
所以我现在一直在使用require.js,但我意识到我实际上并不知道它在幕后是如何工作的。它说它是一个AMD加载器。我知道CommonJS是同步的,这意味着它会在加载时阻止其他代码的执行。另一方面,AMD是异步的。这是我感到困惑的地方。当我定义一个模块时,它必须加载a、b、c才能执行回调。异步在这里如何工作?它必须首先加载这三个依赖项,这不是同步的吗?这是否意味着AMD异步加载a、b、c然后检查是否加载了这些文件(不关心顺序)然后执行回调?define("name",["a","b","c"],function(a,b,c){}); 最佳答案
我正在使用require.js来帮助组织我的基于Backbone.js的应用程序。我正在尝试找出使用AMD与require.js不兼容的第3方javascript库的正确方法有问题的图书馆是backbone-tastypie.js.基本上这个库所做的是monkeypatch一些Backbone的原型(prototype)方法,为TastyPieDjangoREST框架提供更简单的支持。它通过直接操作全局命名空间中的Backbone对象来实现这一点。但是,由于我将Backbone.js用作require.js模块,因此当此库尝试访问它时它不可用。我怎样才能在Backbone范围内导入这个
我正在努力使用requirejs优化器。如果我只是将它加载到浏览器中而不进行优化,那么这段代码将起作用。如果我运行优化器,我会得到:ENOENT,nosuchfileordirectory'C:\Users\dev\checkout\src\main\webapp\resources\scripts\json2.js'Inmoduletree:main这是代码requirejs.config({paths:{jquery:"lib/jquery",bootstrap:"lib/bootstrap",modals:"lib/modals",tablesort:"lib/tablesort
有点抽象的问题,但令我惊讶的是我还没有找到它:现在Dojo已经全部采用AMD1.7,它与RequireJS、Lab、Head等相比如何...编辑:我意识到lab和head不是AMD加载程序。澄清一下:我喜欢Dojo将其核心拆分为小型、简洁、单一用途模块的方式。(我假设这些模块现在可以与任何AMD加载器一起工作,尽管我还没有测试过)这使得dojo.js本身只不过是一个AMD加载器。所以问题是:作为AMD加载器,Dojo是如何叠加的。就如何遵循规范、速度、尺寸、效率等而言。它似乎是一个非常热门的话题中的新生事物,但令人惊讶的是,我对此知之甚少。 最佳答案
我注意到很多图书馆都使用下面的这种风格来定义他们的图书馆。我还注意到第一个自调用函数与Require.js或AMD系统有关,它们总是将工厂作为参数,我将更多地研究Require.js,一直研究Browserify。为什么主要代码被传递到括号内的第一个自调用函数的末尾,这是一个闭包,还是只是被认为是一个匿名函数,我将深入研究两者。这有什么好处?看起来作者在闭包内部传递了一个string、this和一个callback。这是否会为我的库提供一种干净安全的方式来全局化下面这个示例中的主要对象Please?(function(globalName,root,factory){if(typeof
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtoloadbootstrappedmodelsinBackbone.jswhileusingAMD(require.js)我目前正在为我们的一个项目创建一个RESTfulAPI,并且还想提供一个Javascript库来访问它。因为我喜欢AMD原理和使用require.js,所以我也会提供一个AMD模块。问题是:模块的初始化需要一些信息,例如初始化时的APIkey。如何在初始化时将这些参数传递给模块?
我阅读了很多关于AMD解决方案的文章,例如RequireJS或在Javascript中遵循CommonJS风格的模块加载器。假设我有一个分为以下几个部分的应用:依赖于我使用的框架的应用定义依赖于App定义和框架的模型1依赖应用程序定义的模型2、模型1和我的框架我可以将每个部分编写为RequireJS模块或通用JS模块,然后将我的项目拆分为我想要的文件,但是将每个部分编写为模块或将它们拆分为多个文件然后将它们加载到正确的顺序(以避免依赖性问题)可能将所有文件连接成一个大文件以减少HTTP请求(如r.js优化器所做的那样)? 最佳答案