问题标签 [amd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - BackboneJS 根级视图
如果您在“几乎”每个屏幕上都有一些根级别的 HTML,您将在哪里/如何组织它?
我正在使用骨干样板和requirejs。其中一个根级视图是一个全局导航元素,可以随时从屏幕底部调用。
这被组织在一个具有模型的模块中(用于可见性、选定状态、点击日志等)。该应用程序存储在:
然后在我的路由器初始化方法中,我有:
它工作正常,但随着功能的增长,路由器初始化方法与类似的根视图、子路由器等变得失控。我完全错过了什么吗?
你会推荐什么?
javascript - RequireJS - pass parameters into module for initialization
Possible Duplicate:
How to load bootstrapped models in Backbone.js while using AMD (require.js)
I am currently creating a RESTful API for one of our projects and also wanted to provide a Javascript library to access it.
Since I like the AMD principle and using require.js, I would provide an AMD module as well. The problem is: the initialization of the module would require some information like the API key on initialization.
How do I pass such parameters into a module upon initalization?
javascript - 具有最少代码占用的 JS 加载器
几天前我遇到了一个问题,这意味着我需要 JS 加载器。
我有以下文件:
我需要从“c.js”开始按顺序加载这些文件。
我对 js 加载器进行了一些快速研究,发现它们中的许多不能工作(或者工作但以丑陋的方式)具有像我的示例这样的深层依赖关系,并且只要它们加载给定依赖关系就启动一个回调函数,而不必担心给定依赖项中的依赖项(如果您现在是我的意思)。
尽管像 requireJs 这样的一些严肃的加载器可以做到这一点,但我发现它们在这种情况下有点烦人:
...太多的代码,只有很少的依赖。
我也不喜欢我应该修改一些脚本,所以当它应该返回 $ 时,它们会返回类似于 jQuery 的东西。
太节省我的时间并避免尝试所有加载程序,我创建了这个问题。
所以,最大的问题是,哪个 JS 加载器可以执行以下操作:
- 加载“深度”依赖项,就像我的示例一样,只有在加载所有依赖项和依赖项的所有依赖项(...等)时才会启动 callback() 。
- 占用空间小,就像拥有一个 reuqire 函数,带有依赖列表和回调,并且不需要“回调”来返回和传递一些东西(因为通常我有自己的命名空间,比如 ga、gb、gc)。
我希望看到的一些例子:
*对不起我的英语不好。
Ps - 实际上我写了我自己的加载器,它确实给出了一些东西,并且比 $script.js 更小(580 字节),虽然,当需要一些东西时,应该传递当前脚本的文件名,就像这样require('main.js', ['b.js'], function(){});
- 但我没有想靠我的悟性。
dojo - Dojo 1.7 如何在 require() 之外使用 dojo 组件
我在 Dojo 1.7.2 中使用 AMD 加载程序创建了如下所示的 Dojo 小部件
在上面的示例中,在最后一条语句中,变量“myCpane”以“未定义”的形式出现,如果我在“require()”回调函数中使用“myCpane.startup()”,它将正常工作。
但我想在 'require' 函数之外使用那个 'myCpane' 变量(出于多种原因)。我知道由于 Dojo 的组件加载过程而延迟了“require()”回调函数的执行。
我的问题是,
- 如何阻止“require()”函数,直到它完成执行它的回调函数。
因此,当控件从“require()”函数中出来时,变量“myCpane”不会是“未定义的”
==================================================== =========
为了克服这个问题,我编写了一个小函数来加载模块并等待模块加载完成
函数的输出总是执行while循环,控件永远不会进入'require()的回调函数来设置变量“moduleObject”的值。
'require()' 函数何时会调用它的回调函数?我已经使用浏览器调试器窗口验证了文件'ContentPane.js'已正确加载,但未调用回调函数,如果我评论while循环,则正确调用回调。
在我的情况下,控件何时进入回调函数?
backbone.js - 使用 Use! 加载 Backbone.Relational 插入
Backbone Relational 不是 AMD 兼容的库,所以我继续寻找使用插件来确保下划线和主干都作为依赖项加载。这是我的配置文件
我还继续扩展了 Backbone Relational 库
最后,我在模型中调用关系
我收到无法设置未定义的属性关系的错误。含义 Backbone 不可用。我错过了什么?
我一直在使用的一些链接
https://github.com/tbranyen/use.js
https://github.com/tbranyen/layoutmanager-example/blob/master/app/index.js
https://raw.github .com/PaulUithol/Backbone-relational/master/backbone-relational.js
javascript - 为什么串联的 RequireJS AMD 模块需要加载器?
我们在开发过程中喜欢 RequireJS 和 AMD,我们可以在其中编辑模块,在浏览器中点击重新加载,然后立即看到结果。但是当需要将我们的模块连接到一个文件中以进行生产部署时,显然必须有一个 AMD 加载器仍然存在,无论该加载器是 RequireJS 本身还是它的较小合作伙伴“almond”,如下所述:
http://requirejs.org/docs/faq-optimization.html#wrap
我的困惑是:为什么需要一个装载机?除非您有非常不寻常的情况需要您require()
在模块内部进行调用,否则似乎可以在没有加载程序的情况下连接一系列 AMD 模块。最简单的可能示例是如下所示的一对模块。
ModA.js:
ModB.js:
鉴于这两个模块,连接器似乎可以简单地生成以下文本,而不会给生产服务器或浏览器带来 RequireJS 或 Almond 所需的额外带宽或计算负担。
我想象一个产生的连接器(我正在使用 chevron-quotes «,» 来显示上面两个模块的片段被插入的位置):
据我所知,这将正确地重现 AMD 的语义,并且使用最少的无关胶水 JavaScript。有这样的连接器可用吗?如果不是这样,我会不会傻到认为我应该写一个 - 真的很少有代码库由简单而干净的模块组成,define()
并且不需要require()
在内部进行进一步的调用来启动以后的异步代码获取?
javascript - require.js data-main 上的过期缓存
我正在使用 require.js 和 r.js 来打包我的 AMD 模块。我通过以下语法使用 jquery & requirejs:
这一切都很好的前后打包,但我遇到了很多问题,chrome 和移动 safari 保留了 client.js 的缓存版本。我想向 client.js 添加一个 cachebuster,但我似乎无法弄清楚如何使用上述语法来做到这一点。
我尝试了一些变体:
但现在需要尝试从/
而不是404s 获取 client.js /js
。
我也尝试添加
to require.config
,但它似乎没有效果。
我也尝试将相同的值添加到app.build.js
,但是当它在那里时,r.js 不再连接我的 js 文件,只是将它们丑化。
破坏 require.js 数据主脚本缓存的正确语法是什么?
javascript - 在RequireJS中的任何其他代码之前不加载任何AMD模块?
如何在加载任何其他模块之前加载非 AMD 模块?我有一个用于 console.x 的 shim,但在加载它之前遇到了麻烦。
我还希望仅在条件为真时才加载它 - 所以在这种情况下,因为它是一个控制台垫片,我想测试一下“控制台”是否未定义,然后只在条件为真时加载控制台垫片。
请注意,我正在使用 RequireJS 并且也有 Modernizr 可供使用。
谢谢。
javascript - AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里?
我有一个大型单页应用程序,我正在迁移到 Dojo 1.7/AMD 加载程序语法。
我有一个加载所有内容的主 JSP,然后是大量用于动态内容生成的 JSP 页面。
在整个应用程序周围或在必要模块的每个实例周围添加 require(){} 块是更好的设计决策吗?
还是某种组合?把最常见的require()添加到主页面,然后再去翻找其他需要包装的实例?
javascript - require js paths not being recognised
I am using RequireJS 2.0.2
I have the following in a file used as the entry point.
however it only recognises 'jquery' and none of the other paths, it comes back with the following error:
....thoughts?
Many thanks.